next method

  1. @override
DateTime next(
  1. DateTime date
)
override

Returns the next date that fits the dayInYear.

Implementation

@override
DateTime next(DateTime date) {
  final thisYearDay = date.firstDayOfYear
      .add(Duration(days: dayInYear - 1))
      .clamp(max: date.lastDayOfYear)
      .add(date.exactTimeOfDay);
  if (date.dayInYear < dayInYear) return thisYearDay;
  return date
      .copyWith(year: date.year + 1)
      .firstDayOfYear
      .add(Duration(days: dayInYear - 1))
      .clamp(max: date.copyWith(year: date.year + 1).lastDayOfYear)
      .add(date.exactTimeOfDay);
}