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.