Нет необходимости делать какие-либо вычисления вручную.
Вы можете настроить заданную дату с помощью регулятора с помощью метода LocalDateTime.with(adjuster)
. Там находится встроенный регулятор на следующий день недели: TemporalAdjusters.next(dayOfWeek)
:
Возвращает следующий день-недели регулятор, который регулирует дату первого вхождения в указанный день-недельного после дата корректируется.
public static void main(String[] args) {
LocalDateTime dateTime = LocalDateTime.now();
LocalDateTime nextMonday = dateTime.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
System.out.println(nextMonday);
}
Этот код вернет следующий понедельник на основе текущей даты.
Использования статического импорта, это делает код легче читать:
LocalDateTime nextMonday = dateTime.with(next(MONDAY));
Обратите внимание, что если текущая дата уже на понедельник, этот код будет возвращать следующий понедельник (т.е. понедельника со следующей недели). Если вы хотите сохранить текущую дату в этом случае, вы можете использовать nextOrSame(dayOfWeek)
.
Я бы порекомендовал: https://docs.oracle.com/javase/8/docs/api/java/util/Calendar.html – Fincio
@Fincio Конечно нет. – Tunaki
LocalDateTime \t plusWeeks (длинные недели)? – Fincio