formatDuration method

String formatDuration(
  1. Duration d
)

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(' ');
}