next method
Returns the next LocalDate falling on the specified DayOfWeek. This is a strict 'next' - if this date on already falls on the target day of the week, the returned value will be a week later.
targetDayOfWeek
: The ISO day of the week to return the next date of.
Returns: The next LocalDate falling on the specified day of the week.
InvalidOperationException
: The underlying calendar doesn't use ISO days of the week.ArgumentOutOfRangeException
:targetDayOfWeek
is not a valid day of the week (Monday to Sunday).
Implementation
LocalDate next(DayOfWeek targetDayOfWeek)
{
// Avoids boxing...
if (targetDayOfWeek < DayOfWeek.monday || targetDayOfWeek > DayOfWeek.sunday)
{
throw RangeError('targetDayOfWeek');
}
// This will throw the desired exception for calendars with different week systems.
DayOfWeek thisDay = dayOfWeek;
int difference = targetDayOfWeek - thisDay;
if (difference <= 0)
{
difference += 7;
}
return addDays(difference);
}