toRelativeString method
Formats this duration as relative text.
Implementation
String toRelativeString() {
final absolute = Duration(microseconds: inMicroseconds.abs());
if (absolute.inSeconds < 10) return 'just now';
final String body;
if (absolute.inDays >= 365) {
final years = (absolute.inDays / 365).round();
body = '$years ${years == 1 ? 'year' : 'years'}';
} else if (absolute.inDays >= 30) {
final months = (absolute.inDays / 30).round();
body = '$months ${months == 1 ? 'month' : 'months'}';
} else if (absolute.inDays >= 1) {
body = '${absolute.inDays} ${absolute.inDays == 1 ? 'day' : 'days'}';
} else if (absolute.inHours >= 1) {
body = '${absolute.inHours} ${absolute.inHours == 1 ? 'hour' : 'hours'}';
} else if (absolute.inMinutes >= 1) {
body =
'${absolute.inMinutes} ${absolute.inMinutes == 1 ? 'minute' : 'minutes'}';
} else {
body = '${absolute.inSeconds} seconds';
}
return isNegative ? '$body ago' : 'in $body';
}