Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как узнать день недели

Короткий ответ

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.

Функции из этого ответа

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.