period property
DateTimePeriodModel
get
period
Implementation
DateTimePeriodModel get period {
final currentDateTime = DateTime.now();
final currentDate = DateTime(
currentDateTime.year, currentDateTime.month, currentDateTime.day);
final thisDateTime = this!;
final thisDate =
DateTime(thisDateTime.year, thisDateTime.month, thisDateTime.day);
final differenceInDays = thisDate.difference(currentDate).inDays;
final differenceInHours = thisDateTime.difference(currentDateTime).inHours;
final differenceInMinutes =
thisDateTime.difference(currentDateTime).inMinutes;
final differenceInSeconds =
thisDateTime.difference(currentDateTime).inSeconds;
if (differenceInDays < -13)
return DateTimePeriodModel(period: DateTimePeriod.general);
if (differenceInDays < -6)
return DateTimePeriodModel(period: DateTimePeriod.lastWeek);
if (differenceInDays.between(-6, -2))
return DateTimePeriodModel(
period: DateTimePeriod.beforeFewDays, amount: differenceInDays.abs());
if (differenceInDays == -1)
return DateTimePeriodModel(period: DateTimePeriod.yesterday);
if (differenceInDays == 0 && differenceInHours < 0)
return DateTimePeriodModel(
period: DateTimePeriod.beforeFewHours,
amount: differenceInHours.abs());
if (differenceInDays == 0 &&
differenceInHours == 0 &&
differenceInMinutes < 0)
return DateTimePeriodModel(
period: DateTimePeriod.beforeFewMinutes,
amount: differenceInMinutes.abs());
if (differenceInDays == 0 &&
differenceInHours == 0 &&
differenceInMinutes == 0 &&
differenceInSeconds < 0)
return DateTimePeriodModel(
period: DateTimePeriod.beforeFewSeconds,
amount: differenceInSeconds.abs());
if (differenceInDays == 0 &&
differenceInHours == 0 &&
differenceInMinutes == 0 &&
differenceInSeconds == 0)
return DateTimePeriodModel(period: DateTimePeriod.now);
if (differenceInDays == 0 &&
differenceInHours == 0 &&
differenceInMinutes == 0 &&
differenceInSeconds > 0)
return DateTimePeriodModel(
period: DateTimePeriod.afterFewSeconds, amount: differenceInSeconds);
if (differenceInDays == 0 &&
differenceInHours == 0 &&
differenceInMinutes > 0)
return DateTimePeriodModel(
period: DateTimePeriod.afterFewMinutes, amount: differenceInMinutes);
if (differenceInDays == 0 && differenceInHours > 0)
return DateTimePeriodModel(
period: DateTimePeriod.afterFewHours, amount: differenceInHours);
if (differenceInDays == 1)
return DateTimePeriodModel(period: DateTimePeriod.tomorrow);
if (differenceInDays.between(2, 6))
return DateTimePeriodModel(
period: DateTimePeriod.afterFewDays, amount: differenceInDays);
if (differenceInDays > 6)
return DateTimePeriodModel(period: DateTimePeriod.nextWeek);
if (differenceInDays > 13)
return DateTimePeriodModel(period: DateTimePeriod.general);
return DateTimePeriodModel(period: DateTimePeriod.general);
}