toDateTime method
Calculate a past DateTime relative to DateTime.now().
Months/years are calendar-aware. Throws if unit is unknown.
Implementation
DateTime toDateTime() {
final now = DateTime.now();
switch (unit) {
case TimeUnit.milliseconds:
return now.subtract(Duration(microseconds: value * 1000));
case TimeUnit.seconds:
return now.subtract(Duration(seconds: value));
case TimeUnit.minutes:
return now.subtract(Duration(minutes: value));
case TimeUnit.hours:
return now.subtract(Duration(hours: value));
case TimeUnit.days:
return now.subtract(Duration(days: value));
case TimeUnit.weeks:
return now.subtract(Duration(days: value * 7));
case TimeUnit.months:
return DateTime(now.year, now.month - value, now.day, now.hour,
now.minute, now.second, now.millisecond, now.microsecond);
case TimeUnit.years:
return DateTime(now.year - value, now.month, now.day, now.hour,
now.minute, now.second, now.millisecond, now.microsecond);
case TimeUnit.justnow:
return now;
case TimeUnit.unknown:
throw Exception("Cannot convert unknown time unit to DateTime.");
}
}