formatResetTime function

String? formatResetTime(
  1. int? timestampInSeconds, {
  2. bool showTimezone = false,
  3. bool showTime = true,
})

Formats a reset timestamp for display.

Implementation

String? formatResetTime(
  int? timestampInSeconds, {
  bool showTimezone = false,
  bool showTime = true,
}) {
  if (timestampInSeconds == null || timestampInSeconds == 0) return null;

  final date = DateTime.fromMillisecondsSinceEpoch(timestampInSeconds * 1000);
  final now = DateTime.now();
  final hoursUntilReset =
      (date.millisecondsSinceEpoch - now.millisecondsSinceEpoch) /
      (1000 * 60 * 60);

  if (hoursUntilReset > 24) {
    final buf = StringBuffer();
    buf.write('${_monthAbbr(date.month)} ${date.day}');
    if (date.year != now.year) buf.write(', ${date.year}');
    if (showTime) {
      buf.write(' ${_formatTime12(date)}');
    }
    if (showTimezone) buf.write(' (${date.timeZoneName})');
    return buf.toString();
  }

  final buf = StringBuffer(_formatTime12(date));
  if (showTimezone) buf.write(' (${date.timeZoneName})');
  return buf.toString();
}