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

36 lines
1.0 KiB
Dart
Raw Normal View History

2022-01-25 19:00:47 +02:00
// ignore_for_file: unnecessary_this
extension DurationFormatter on Duration {
String toDayHourMinuteSecondFormat() {
return [
this.inHours.remainder(24),
this.inMinutes.remainder(60),
this.inSeconds.remainder(60)
2022-06-05 22:36:32 +03:00
].map((seg) => seg.toString().padLeft(2, '0')).join(':');
2022-01-25 19:00:47 +02:00
}
String toDayHourMinuteFormat() {
var designator = this >= Duration.zero ? '+' : '-';
var segments = [
this.inHours.remainder(24).abs(),
this.inMinutes.remainder(60).abs(),
2022-06-05 22:36:32 +03:00
].map((seg) => seg.toString().padLeft(2, '0'));
2022-01-25 19:00:47 +02:00
return '$designator${segments.first}:${segments.last}';
}
String toHoursMinutesSecondsFormat() {
// WAT: https://flutterigniter.com/how-to-format-duration/
2022-05-24 21:55:39 +03:00
return this.toString().split('.').first.padLeft(8, '0');
2022-01-25 19:00:47 +02:00
}
String toDayHourMinuteFormat2() {
var segments = [
this.inHours.remainder(24),
this.inMinutes.remainder(60),
2022-06-05 22:36:32 +03:00
].map((seg) => seg.toString().padLeft(2, '0'));
2022-05-24 21:55:39 +03:00
return '${segments.first} h ${segments.last} min';
2022-01-25 19:00:47 +02:00
}
}