toCompactString method
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;
}