humanReadable property

String get humanReadable

Get duration as a human-readable string

Implementation

String get humanReadable {
  if (isZero) return '0 seconds';

  final parts = <String>[];

  if (inDays > 0) {
    parts.add('${inDays} ${inDays == 1 ? 'day' : 'days'}');
  }

  if (remainingHours > 0) {
    parts.add('$remainingHours ${remainingHours == 1 ? 'hour' : 'hours'}');
  }

  if (remainingMinutes > 0) {
    parts.add(
        '$remainingMinutes ${remainingMinutes == 1 ? 'minute' : 'minutes'}');
  }

  if (remainingSeconds > 0 || parts.isEmpty) {
    parts.add(
        '$remainingSeconds ${remainingSeconds == 1 ? 'second' : 'seconds'}');
  }

  return parts.join(' ');
}