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); } }