endOf method

Jiffy endOf(
  1. Units units
)

Implementation

Jiffy endOf(Units units) {
  switch (units) {
    case Units.MILLISECOND:
      _dateTime = DateTime(
          _dateTime.year,
          _dateTime.month,
          _dateTime.day,
          _dateTime.hour,
          _dateTime.minute,
          _dateTime.second,
          _dateTime.millisecond);
      break;
    case Units.SECOND:
      _dateTime = DateTime(_dateTime.year, _dateTime.month, _dateTime.day,
          _dateTime.hour, _dateTime.minute, _dateTime.second, 999);
      break;
    case Units.MINUTE:
      _dateTime = DateTime(_dateTime.year, _dateTime.month, _dateTime.day,
          _dateTime.hour, _dateTime.minute, 59, 999);
      break;
    case Units.HOUR:
      _dateTime = DateTime(_dateTime.year, _dateTime.month, _dateTime.day,
          _dateTime.hour, 59, 59, 999);
      break;
    case Units.DAY:
      _dateTime = DateTime(
          _dateTime.year, _dateTime.month, _dateTime.day, 23, 59, 59, 999);
      break;
    case Units.WEEK:
      var newDate = _dateTime.add(Duration(days: DateTime.daysPerWeek - day));
      _dateTime =
          DateTime(newDate.year, newDate.month, newDate.day, 23, 59, 59, 999);
      break;
    case Units.MONTH:
      var date = _daysInMonthArray[_dateTime.month];
      if (_isLeapYear(_dateTime.year) && _dateTime.month == 2) {
        date = 29;
      }
      _dateTime =
          DateTime(_dateTime.year, _dateTime.month, date, 23, 59, 59, 999);
      break;
    case Units.YEAR:
      _dateTime = DateTime(_dateTime.year, 12, 31, 23, 59, 59, 999);
      break;
  }
  return clone();
}