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.