31 lines
1.0 KiB
Dart
31 lines
1.0 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
String formatTime(int seconds) {
|
|
if (seconds < 0) {
|
|
return '00:00';
|
|
}
|
|
Duration duration = Duration(seconds: seconds);
|
|
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));
|
|
if (duration.inDays != 0) {
|
|
formattedTime += '$days Tag${duration.inDays > 1 ? "e" : ""}, ';
|
|
}
|
|
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);
|
|
}
|
|
}
|