Encodera

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

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

Справочник Java

ChronoUnit.between()

Считает количество целых единиц (дней, месяцев, часов) между двумя датами или моментами.

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

Синтаксис

public long between(Temporal start, Temporal end)

Параметры

ПараметрТипОписание
startTemporalНачало — LocalDate, LocalDateTime, Instant и т. п.
endTemporalКонец того же типа; не включается.

Возвращаемое значение

longКоличество единиц; отрицательное, если end раньше start.

Примеры

Сколько дней до события:

void main() {
    LocalDate today = LocalDate.of(2025, 3, 14);
    LocalDate newYear = LocalDate.of(2026, 1, 1);
    IO.println(ChronoUnit.DAYS.between(today, newYear));
    IO.println(ChronoUnit.WEEKS.between(today, newYear));
    IO.println(ChronoUnit.MONTHS.between(today, newYear));
}

Результат:

293
41
9

Неполные единицы отбрасываются:

void main() {
    LocalDateTime a = LocalDateTime.of(2025, 3, 14, 9, 0);
    LocalDateTime b = LocalDateTime.of(2025, 3, 14, 11, 59);
    IO.println(ChronoUnit.HOURS.between(a, b));
    IO.println(ChronoUnit.MINUTES.between(a, b));
}

Результат:

2
179

Примечания

То же можно записать как start.until(end, ChronoUnit.DAYS). В отличие от Period, результат — одно число в выбранных единицах.

См. также

  • Period — Календарный промежуток в годах, месяцах и днях — например, возраст.
  • Duration — Промежуток времени в секундах и наносекундах — часы, минуты, секунды.
  • LocalDate.of() — Создаёт дату из года, месяца и дня.

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

В учебнике

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

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

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