selfprivacy.org.app/lib/utils/extensions/duration.dart

33 lines
1.1 KiB
Dart

// ignore_for_file: unnecessary_this
extension DurationFormatter on Duration {
String toDayHourMinuteSecondFormat() => [
this.inHours.remainder(24),
this.inMinutes.remainder(60),
this.inSeconds.remainder(60)
].map((final int seg) => seg.toString().padLeft(2, '0')).join(':');
String toDayHourMinuteFormat() {
final designator = this >= Duration.zero ? '+' : '-';
final Iterable<String> segments = [
this.inHours.remainder(24).abs(),
this.inMinutes.remainder(60).abs(),
].map((final int seg) => seg.toString().padLeft(2, '0'));
return '$designator${segments.first}:${segments.last}';
}
// WAT: https://flutterigniter.com/how-to-format-duration/
String toHoursMinutesSecondsFormat() =>
this.toString().split('.').first.padLeft(8, '0');
String toDayHourMinuteFormat2() {
final Iterable<String> segments = [
this.inHours.remainder(24),
this.inMinutes.remainder(60),
].map((final int seg) => seg.toString().padLeft(2, '0'));
return '${segments.first} h ${segments.last} min';
}
}