Длительность между моментами в Java
Duration описывает точный промежуток: часы,
минуты, секунды и наносекунды. Она не знает про
календарные месяцы и високосные годы. Для смены
даты на календаре берут Period.
Готовую длительность собирают фабриками
ofHours, ofMinutes, ofSeconds
или из двух моментов:
import java.time.Duration;
import java.time.Instant;
public class Main {
public static void main(String[] args) {
Duration pause = Duration.ofMinutes(45);
Instant a = Instant.parse("2024-03-01T12:00:00Z");
Instant b = Instant.parse("2024-03-01T14:15:00Z");
Duration span = Duration.between(a, b);
System.out.println(pause);
System.out.println(span.toHours());
}
}
К локальному времени длительность прибавляют через
plus. Части интервала читают
toHours, toMinutes, toSeconds
или toMillis:
import java.time.Duration;
import java.time.LocalTime;
public class Main {
public static void main(String[] args) {
LocalTime open = LocalTime.of(9, 0);
LocalTime close = open.plus(Duration.ofHours(8).plusMinutes(30));
System.out.println(close);
}
}
Отрицательный интервал помечают isNegative.
Модуль берут через abs. Две длительности
складывают plus и вычитают minus
без изменения исходных значений.
Создайте длительность 125 секунд и выведите
ее в минутах.
К времени 14:20 прибавьте 45 минут
длительностью и выведите результат.