Gymterview
junior

Как получить вторую субботу текущего месяца используя Date Time API?

Для нахождения второй субботы нужно сначала найти первую субботу месяца, а затем перейти к следующей:

Пример
LocalDate secondSaturday = LocalDate
    .of(LocalDate.now().getYear(), LocalDate.now().getMonth(), 1)
    .with(TemporalAdjusters.nextOrSame(DayOfWeek.SATURDAY))
    .with(TemporalAdjusters.next(DayOfWeek.SATURDAY));

Алгоритм: берём первое число текущего месяца, находим первую субботу (nextOrSame — если 1-е число уже суббота, берём его), затем переходим к следующей субботе (next — гарантированно пропускает текущую дату). Результат — вторая суббота месяца.

На собеседовании: этот вопрос проверяет понимание разницы между next() и nextOrSame() и умение комбинировать TemporalAdjusters.