Encodera

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

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

Справочник Java

Period

Календарный промежуток в годах, месяцах и днях — например, возраст.

Доступно с: Java 8

Синтаксис

public final class Period implements ChronoPeriod

Примеры

Возраст по дате рождения:

void main() {
    LocalDate birth = LocalDate.of(1990, 8, 25);
    LocalDate today = LocalDate.of(2025, 3, 14);
    Period age = Period.between(birth, today);
    IO.println(age);
    IO.println(age.getYears() + " years, " + age.getMonths() + " months, " + age.getDays() + " days");
}

Результат:

P34Y6M17D
34 years, 6 months, 17 days

Прибавить период к дате:

void main() {
    Period trial = Period.ofMonths(1).plusDays(14);
    IO.println(trial);
    IO.println(LocalDate.of(2025, 1, 20).plus(trial));
}

Результат:

P1M14D
2025-03-06

Примечания

getDays() — это только остаток дней после полных месяцев, а не общее число дней. Общее количество дней между датами считает ChronoUnit.DAYS.between(a, b).

См. также

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

Вопросы и ответы по теме

В учебнике

  • Даты и время — Пакет java.time — LocalDate, LocalTime, LocalDateTime, арифметика дат, Period, Duration, ChronoUnit, часовые пояса и Instant.

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

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