prettySeconds function
Pretty format duration
in terms of seconds.
If terse
is true, milliseconds and microseconds are ignored.
Use language
to configure which locale to print for.
Use abbreviated
to control if the units should be abbreviated.
Implementation
String prettySeconds(Duration duration,
{bool terse = false,
DurationLocale language = const EnglishDurationLocale(),
String separator = ' ',
String delimiter = ' ',
bool abbreviated = false}) {
if (duration.inSeconds > 0) {
if (duration.inMilliseconds == 0 || terse) {
final sb = StringBuffer();
sb.write(duration.inSeconds);
sb.write(separator);
sb.write(language.second(duration.inSeconds, abbreviated));
return sb.toString();
} else if (duration.inMicroseconds == 0) {
final sb = StringBuffer();
sb.write(duration.inSeconds);
sb.write('.');
sb.write(_digits(duration.inMilliseconds % 1000, 3));
sb.write(separator);
sb.write(language.second(duration.inSeconds, abbreviated));
return sb.toString();
} else {
final sb = StringBuffer();
sb.write(duration.inSeconds);
sb.write(separator);
sb.write(language.second(duration.inSeconds, abbreviated));
sb.write(delimiter);
sb.write(duration.inMilliseconds % 1000);
sb.write('.');
sb.write(_digits(duration.inMicroseconds % 1000, 3));
sb.write(separator);
sb.write(
language.millisecond(duration.inMilliseconds % 1000, abbreviated));
return sb.toString();
}
} else {
return prettyMilliseconds(duration,
terse: terse,
language: language,
separator: separator,
abbreviated: abbreviated);
}
}