Класс Duration

Класс Duration представляет неизменяемую длительность времени с точностью до наносекунды. Он используется для измерения временных интервалов и поддерживает основные арифметические операции. Длительность может быть положительной или отрицательной и хранится как количество секунд и наносекунд.

Импорт

kotlinimport java.time.Duration

Синтаксис создания

kotlinfun ofDays(days: Long): Duration
kotlinfun ofHours(hours: Long): Duration
kotlinfun ofMinutes(minutes: Long): Duration
kotlinfun ofSeconds(seconds: Long): Duration
kotlinfun ofSeconds(seconds: Long, nanoAdjustment: Long): Duration
kotlinfun ofMillis(millis: Long): Duration
kotlinfun ofNanos(nanos: Long): Duration
kotlinfun parse(text: CharSequence): Duration
kotlinfun between(start: Temporal, end: Temporal): Duration

Пример

Создадим длительность в 2 часа:

kotlinval duration = Duration.ofHours(2)
println(duration)

Результат выполнения кода:

kotlinString "PT2H"

Пример

Создадим длительность в 90 секунд:

kotlinval duration = Duration.ofSeconds(90)
println(duration)

Результат выполнения кода:

kotlinString "PT1M30S"

Пример

Парсинг длительности из строки:

kotlinval duration = Duration.parse("PT1H30M15S")
println(duration)

Результат выполнения кода:

kotlinString "PT1H30M15S"

Пример

Измерение длительности между двумя временными точками:

kotlinimport java.time.LocalTime

val start = LocalTime.of(10, 30)
val end = LocalTime.of(12, 45)
val duration = Duration.between(start, end)
println(duration)

Результат выполнения кода:

kotlinString "PT2H15M"

Пример

Получение компонентов длительности:

kotlinval duration = Duration.ofHours(2).plusMinutes(30)

val hours = duration.toHours()
val minutes = duration.toMinutes()
val seconds = duration.seconds

println("Hours: $hours, Minutes: $minutes, Seconds: $seconds")

Результат выполнения кода:

kotlinString "Hours: 2, Minutes: 150, Seconds: 9000"

Пример

Арифметические операции с длительностями:

kotlinval duration1 = Duration.ofHours(2)
val duration2 = Duration.ofMinutes(30)

val sum = duration1.plus(duration2)
val diff = duration1.minus(duration2)
val multiplied = duration1.multipliedBy(3)

println("Sum: $sum, Difference: $diff, Multiplied: $multiplied")

Результат выполнения кода:

kotlinString "Sum: PT2H30M, Difference: PT1H30M, Multiplied: PT6H"

Смотрите также

  • класс Period,
    который представляет длительность в годах, месяцах и днях
  • класс LocalTime,
    который представляет время без даты
  • класс LocalDateTime,
    который представляет дату и время
  • класс Instant,
    который представляет мгновение на временной шкале