toCompactString method

String toCompactString()

Short compact form showing the two most significant non-zero units.

const Duration(hours: 2, minutes: 3).toCompactString(); // '2h 3m'
const Duration(seconds: 45).toCompactString();          // '45s'
Duration.zero.toCompactString();                        // '0s'

Implementation

String toCompactString() {
  final d = Duration(microseconds: inMicroseconds.abs());
  final h = d.inHours;
  final m = d.inMinutes % 60;
  final s = d.inSeconds % 60;

  final parts = <String>[if (h > 0) '${h}h', if (m > 0) '${m}m', if (s > 0 || (h == 0 && m == 0)) '${s}s'];

  final body = parts.take(2).join(' ');
  return inMicroseconds < 0 ? '-$body' : body;
}