Класс TemporalAmount
Интерфейс TemporalAmount представляет временной промежуток, который может быть измерен в различных единицах времени.
Реализации этого интерфейса, такие как Period и Duration,
позволяют работать с датами и временем, добавляя или вычитая промежутки.
Метод get возвращает значение указанной единицы времени, метод getUnits возвращает список доступных единиц измерения,
метод addTo добавляет промежуток к временному объекту, а метод subtractFrom вычитает промежуток из временного объекта.
Импорт
import java.time.temporal.TemporalAmount
import java.time.Period
import java.time.Duration
Синтаксис
interface TemporalAmount {
fun get(unit: TemporalUnit): Long
fun getUnits(): List<TemporalUnit>
fun addTo(temporal: Temporal): Temporal
fun subtractFrom(temporal: Temporal): Temporal
}
Пример
Создадим период в 2 года, 3 месяца и 10 дней и добавим его к дате:
import java.time.LocalDate
import java.time.Period
val period = Period.of(2, 3, 10)
val date = LocalDate.of(2025, 1, 1)
val newDate = period.addTo(date)
println(newDate)
Результат выполнения кода:
String "2027-04-11"
Пример
Получим компоненты временного промежутка:
import java.time.Period
import java.time.temporal.ChronoUnit
val period = Period.of(1, 5, 15)
val years = period.get(ChronoUnit.YEARS)
val months = period.get(ChronoUnit.MONTHS)
val days = period.get(ChronoUnit.DAYS)
println("Years: $years, Months: $months, Days: $days")
Результат выполнения кода:
String "Years: 1, Months: 5, Days: 15"
Пример
Получим список единиц измерения временного промежутка:
import java.time.Duration
val duration = Duration.ofHours(5).plusMinutes(30)
val units = duration.getUnits()
for (unit in units) {
println(unit)
}
Результат выполнения кода:
String "Seconds"
String "Nanos"
Пример
Вычтем продолжительность из времени:
import java.time.LocalTime
import java.time.Duration
val duration = Duration.ofMinutes(45)
val time = LocalTime.of(14, 30)
val newTime = duration.subtractFrom(time)
println(newTime)
Результат выполнения кода:
String "13:45"
Смотрите также
-
класс
Period,
который представляет период в годах, месяцах и днях -
класс
Duration,
который представляет продолжительность в секундах и наносекундах -
интерфейс
TemporalUnit,
который представляет единицу измерения времени -
класс
LocalDate,
который представляет дату без времени