From 3108b9a6586fbf3baeba4d95d295f5cdcbed26bc Mon Sep 17 00:00:00 2001 From: lukas-heiligenbrunner Date: Thu, 22 Feb 2024 22:45:00 +0100 Subject: [PATCH] add correct s ending to dates and times --- frontend/lib/utils/time_formatter.dart | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/frontend/lib/utils/time_formatter.dart b/frontend/lib/utils/time_formatter.dart index 301cf71..7538786 100644 --- a/frontend/lib/utils/time_formatter.dart +++ b/frontend/lib/utils/time_formatter.dart @@ -1,20 +1,22 @@ +String _s(num n) => n == 1 ? '' : 's'; + extension TimeFormatter on DateTime { String readableDuration() { final now = DateTime.now(); final duration = now.difference(this); if (duration.inSeconds < 60) { - return '${duration.inSeconds} seconds ago'; + return '${duration.inSeconds} Second${_s(duration.inSeconds)} ago'; } else if (duration.inMinutes < 60) { - return '${duration.inMinutes} minutes ago'; + return '${duration.inMinutes} Minute${_s(duration.inMinutes)})} ago'; } else if (duration.inHours < 24) { - return '${duration.inHours} hours ago'; + return '${duration.inHours} Hour${_s(duration.inHours)} ago'; } else if (duration.inDays < 30) { - return '${duration.inDays} days ago'; + return '${duration.inDays} Day${_s(duration.inDays)} ago'; } else if ((duration.inDays / 30) < 12) { - return '${duration.inDays ~/ 30} months ago'; + return '${duration.inDays ~/ 30} Month${_s(duration.inDays ~/ 30)} ago'; } else { - return '${duration.inDays ~/ 365} years ago'; + return '${duration.inDays ~/ 365} Year${_s(duration.inDays ~/ 365)} ago'; } } } @@ -22,17 +24,17 @@ extension TimeFormatter on DateTime { extension DurationFormatter on Duration { String readableDuration() { if (inSeconds < 60) { - return '$inSeconds second${inSeconds != 1 ? 's' : ''}'; + return '$inSeconds Second${_s(inSeconds)}'; } else if (inMinutes < 60) { - return '$inMinutes minute${inMinutes != 1 ? 's' : ''}'; + return '$inMinutes Minute${_s(inMinutes)}'; } else if (inHours < 24) { - return '$inHours hour${inHours != 1 ? 's' : ''}'; + return '$inHours Hour${_s(inHours)}'; } else if (inDays < 30) { - return '$inDays day${inDays != 1 ? 's' : ''}'; + return '$inDays Day${_s(inDays)}'; } else if ((inDays / 30) < 12) { - return '${inDays ~/ 30} month${(inDays ~/ 30) != 1 ? 's' : ''}'; + return '${inDays ~/ 30} Month${_s(inDays ~/ 30)}'; } else { - return '${inDays ~/ 365} year${(inDays ~/ 365) != 1 ? 's' : ''}'; + return '${inDays ~/ 365} Year${_s(inDays ~/ 365)}'; } } }