formatDuration method
Implementation
String formatDuration(Duration d) {
var seconds = d.inSeconds;
final days = seconds ~/ Duration.secondsPerDay;
seconds -= days * Duration.secondsPerDay;
final hours = seconds ~/ Duration.secondsPerHour;
seconds -= hours * Duration.secondsPerHour;
final minutes = seconds ~/ Duration.secondsPerMinute;
seconds -= minutes * Duration.secondsPerMinute;
final List<String> tokens = [];
if (days != 0) {
tokens.add('$days day${putS(days)}');
}
if (tokens.isNotEmpty || hours != 0) {
tokens.add('$hours hour${putS(hours)}');
}
if (tokens.isNotEmpty || minutes != 0) {
tokens.add('$minutes minute${putS(minutes)}');
}
tokens
.add('${seconds < 10 ? '0$seconds' : seconds} second${putS(seconds)}');
return tokens.join(' ');
}