cpd_2022_zi/lib/utils/timer_util.dart

31 lines
1.0 KiB
Dart
Raw Permalink Normal View History

import 'package:flutter/material.dart';
String formatTime(int seconds) {
2023-03-06 21:04:35 +01:00
if (seconds < 0) {
return '00:00';
}
Duration duration = Duration(seconds: seconds);
2023-03-03 16:38:08 +01:00
String formattedTime = '';
String twoDigits(int n) => n.toString().padLeft(2, "0");
String days = duration.inDays.toString();
String hours = twoDigits(duration.inHours.remainder(24));
String minutes = twoDigits(duration.inMinutes.remainder(60));
String formattedSeconds = twoDigits(duration.inSeconds.remainder(60));
2023-03-06 13:48:15 +01:00
if (duration.inDays != 0) {
2023-03-06 21:04:35 +01:00
formattedTime += '$days Tag${duration.inDays > 1 ? "e" : ""}, ';
2023-03-06 13:48:15 +01:00
}
2023-03-03 16:38:08 +01:00
if (duration.inHours != 0) formattedTime += '$hours:';
formattedTime += '$minutes:';
formattedTime += formattedSeconds;
return formattedTime;
}
extension TimeOfDayExtension on TimeOfDay {
TimeOfDay durationBetween(TimeOfDay time) {
int hourOffset = time.minute - minute < 0 ? 1 : 0;
return TimeOfDay(
hour: (time.hour - hour - hourOffset) % 24,
minute: (time.minute - minute) % 60);
}
}