Как узнать день недели
Короткий ответ
getDayOfWeek() возвращает значение перечисления DayOfWeek:
void main() {
var date = LocalDate.of(2026, 3, 8);
IO.println(date.getDayOfWeek());
}Результат:
SUNDAYНазвание на нужном языке
getDisplayName() возвращает полное или короткое название:
void main() {
DayOfWeek day = LocalDate.of(2026, 3, 8).getDayOfWeek();
IO.println(day.getDisplayName(TextStyle.FULL, Locale.ENGLISH));
IO.println(day.getDisplayName(TextStyle.SHORT, Locale.GERMAN));
IO.println(day.getDisplayName(TextStyle.FULL, Locale.of("ru")));
}Результат:
Sunday
So.
воскресеньеНомер дня
getValue() нумерует дни с понедельника (1) до воскресенья (7):
void main() {
IO.println(LocalDate.of(2026, 3, 9).getDayOfWeek().getValue());
IO.println(LocalDate.of(2026, 3, 8).getDayOfWeek().getValue());
}Результат:
1
7Выходной ли день
Сравните с SATURDAY и SUNDAY:
boolean isWeekend(LocalDate date) {
return switch (date.getDayOfWeek()) {
case SATURDAY, SUNDAY -> true;
default -> false;
};
}
void main() {
IO.println(isWeekend(LocalDate.of(2026, 3, 7)));
IO.println(isWeekend(LocalDate.of(2026, 3, 9)));
}Результат:
true
falseБлижайший понедельник
TemporalAdjusters находит ближайший нужный день недели:
void main() {
var date = LocalDate.of(2026, 3, 8);
IO.println(date.with(TemporalAdjusters.next(DayOfWeek.MONDAY)));
}Результат:
2026-03-09Частая ошибка
Считать, что неделя начинается с воскресенья, как в старом Calendar, где воскресенье — день номер 1. В java.time понедельник — 1, воскресенье — 7.
Функции из этого ответа
- LocalDate.getDayOfWeek() — Возвращает день недели даты.