diff --git a/lib/util.dart b/lib/util.dart index fe0a32b..554d78d 100644 --- a/lib/util.dart +++ b/lib/util.dart @@ -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"; } \ No newline at end of file diff --git a/lib/widgets/PizzaEventWidget.dart b/lib/widgets/PizzaEventWidget.dart index 36e1431..0aceb50 100644 --- a/lib/widgets/PizzaEventWidget.dart +++ b/lib/widgets/PizzaEventWidget.dart @@ -22,7 +22,7 @@ class PizzaEventWidget extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ 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"; - } } \ No newline at end of file