String pluralize(int count, String noun, [String? plural]) {
if (count == 1) {
return noun;
} else {
return plural ?? '${noun}s';
}
}
String number(int number) {
const numbers = [
'zero',
'one',
'two',
'three',
'four',
'five',
'six',
'seven',
'eight',
'nine',
'ten'
];
if (number < numbers.length) {
return numbers[number];
} else {
return number.toString();
}
}
String daysAgo(DateTime dateTime) {
final now = DateTime.now();
final duration = now.difference(dateTime);
ago(int count, String noun, [String? plural]) {
return "${number(count)} ${pluralize(count, noun, plural)} ago";
}
agoRound(double count, String noun, [String? plural]) {
return ago(count.round(), noun, plural);
}
if (duration.inSeconds < 60) {
return "now";
} else if (duration.inMinutes < 60) {
return ago(duration.inMinutes, "minute");
} else if (duration.inHours < 24) {
return ago(duration.inHours, "hour");
} else if (duration.inDays < 7) {
return ago(duration.inDays, "day");
} else if (duration.inDays < 30) {
return agoRound(duration.inDays / 7, "week");
} else if (duration.inDays < 365) {
return agoRound(duration.inDays / 30, "month");
} else {
return agoRound(duration.inDays / 365, "years");
}
}
|