Encodera

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

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

Как прибавить дни к дате

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

plusDays() возвращает новую дату, сдвинутую на нужное количество дней:

void main() {
    var order = LocalDate.of(2026, 3, 8);
    var delivery = order.plusDays(5);
 
    IO.println(delivery);
}

Результат:

2026-03-13

Месяцы, недели, годы

Похожие методы есть для всех единиц. Отрицательные значения и minus...() сдвигают назад:

void main() {
    var date = LocalDate.of(2026, 3, 8);
 
    IO.println(date.plusWeeks(2));
    IO.println(date.plusMonths(1));
    IO.println(date.minusYears(1));
    IO.println(date.minusDays(10));
}

Результат:

2026-03-22
2026-04-08
2025-03-08
2026-02-26

Конец месяца

Если в новом месяце нет такого дня, Java берёт последний день месяца:

void main() {
    IO.println(LocalDate.of(2026, 1, 31).plusMonths(1));
}

Результат:

2026-02-28

Рабочие дни

Чтобы пропускать выходные, прибавляйте по одному дню и проверяйте день недели:

LocalDate addWorkingDays(LocalDate date, int days) {
    var result = date;
    int added = 0;
    while (added < days) {
        result = result.plusDays(1);
        if (result.getDayOfWeek() != DayOfWeek.SATURDAY && result.getDayOfWeek() != DayOfWeek.SUNDAY) {
            added++;
        }
    }
    return result;
}
 
void main() {
    IO.println(addWorkingDays(LocalDate.of(2026, 3, 6), 3));
}

Результат:

2026-03-11

Частая ошибка

Вызвать plusDays() и не сохранить результат. LocalDate неизменяем — метод не меняет дату, а возвращает новую:

void main() {
    var date = LocalDate.of(2026, 3, 8);
    date.plusDays(5);
 
    IO.println(date);
}

Результат:

2026-03-08

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

  • LocalDate.plusDays() — Возвращает дату на указанное число дней позже. Рядом — minusDays(), plusWeeks(), plusMonths(), plusYears().
  • LocalDate.of() — Создаёт дату из года, месяца и дня.

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

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