extracted getTimeRemainingString from pizza event widget to util

This commit is contained in:
broodjeaap89 2021-08-29 14:51:27 +02:00
parent 843ebe19bc
commit 91fbc547ff
2 changed files with 21 additions and 21 deletions

View file

@ -30,4 +30,24 @@ extension StringExtensions on String {
DateFormat getDateFormat(){
return DateFormat("yyyy-MM-dd H:mm");
}
String getTimeRemainingString(DateTime other, {DateTime? now}){
now = now ?? DateTime.now();
Duration duration = other.difference(now);
Duration absDuration = duration.abs();
String durationString = "";
if (absDuration.inHours <= 0 && absDuration.inMinutes > 0) {
durationString = "${absDuration.inMinutes} minute" + (absDuration.inMinutes > 1 ? "s" : "");
}
else if (absDuration.inDays <= 0 && absDuration.inHours > 0) {
durationString = "${absDuration.inHours} hours";
}
else if (absDuration.inDays <= 31) {
durationString = "${absDuration.inDays} day" + (absDuration.inDays > 1 ? "s" : "");
}
else {
durationString = "${(absDuration.inDays / 7).floor()} week" + (absDuration.inDays >= 14 ? "s" : "");
}
return duration.isNegative ? "$durationString ago" : "In $durationString";
}

View file

@ -22,7 +22,7 @@ class PizzaEventWidget extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text(pizzaEvent.name),
Text(this.getTimeRemainingString())
Text(getTimeRemainingString(pizzaEvent.dateTime))
],
),
Container(
@ -68,24 +68,4 @@ class PizzaEventWidget extends StatelessWidget {
},
);
}
String getTimeRemainingString(){
DateTime now = DateTime.now();
Duration duration = pizzaEvent.dateTime.difference(now);
Duration absDuration = duration.abs();
String durationString = "";
if (absDuration.inHours <= 0 && absDuration.inMinutes > 0) {
durationString = "${absDuration.inMinutes} minute" + (absDuration.inMinutes > 1 ? "s" : "");
}
else if (absDuration.inDays <= 0 && absDuration.inHours > 0) {
durationString = "${absDuration.inHours} hours";
}
else if (absDuration.inDays <= 31) {
durationString = "${absDuration.inDays} day" + (absDuration.inDays > 1 ? "s" : "");
}
else {
durationString = "${(absDuration.inDays / 7).floor()} week" + (absDuration.inDays >= 14 ? "s" : "");
}
return duration.isNegative ? "$durationString ago" : "In $durationString";
}
}