toDateTime method

DateTime toDateTime()

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.");
  }
}