timeRemainingUntil method
Calculates time remaining in seconds until now and returns
'04:39:01:58' or '0' if no time remaining.
Example:
final now = DateTime.now();
final date = DateTime(2026, 6, 12, 10, 40);
final remaining = date.timeRemainingUntil(now);
// returns: '00:01:00:00'
Implementation
String timeRemainingUntil([DateTime? now]) {
now ??= DateTime.now();
final d = difference(now).inSeconds > 0
? difference(now)
: const Duration(seconds: 0);
if (d.inSeconds <= 0) return '0';
final days = d.inDays;
final hours = d.inHours.remainder(24);
final minutes = d.inMinutes.remainder(60);
final seconds = d.inSeconds.remainder(60);
return '${days.toString().padLeft(2, '0')}:'
'${hours.toString().padLeft(2, '0')}:'
'${minutes.toString().padLeft(2, '0')}'
':${seconds.toString().padLeft(2, '0')}';
}