startDate method

  1. @override
DateTime startDate(
  1. DateTime date, {
  2. DateTime? limit,
  3. int? currentCount,
})
override

Generates the start date of the every base process. It will skip currentCount times from the date using the EverySkipCountWrapper.next process.

If currentCount is null, it will be set to count.

Implementation

@override
DateTime startDate(DateTime date, {DateTime? limit, int? currentCount}) {
  assert(
    currentCount == null || currentCount >= 0,
    'currentCount must be greater than or equal to 0',
  );
  final validForEveryValidator =
      (every is DateValidator) && ((every as DateValidator).valid(date));
  if (validForEveryValidator ||
      LimitedOrEveryHandler.startDate(every, date, limit: limit) == date) {
    return date;
  }
  return processDate(
    LimitedOrEveryHandler.next(every, date, limit: limit),
    DateDirection.next,
    limit: limit,
    currentCount: currentCount ?? count,
  );
}