Стажировка
Открыта запись на бесплатный пробный месяц! Жми для подробностей! →
923 of 1310 menu
По вашим просьбам сделал СВЕЖУЮ ОФЛАЙН ВЕРСИЮ номер 4 (временную). Рекомендую скачать на случай проблем с доступностью сайта.

Класс Duration

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

Импорт

import java.time.Duration

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

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

Пример

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

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

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

String "PT2H"

Пример

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

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

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

String "PT1M30S"

Пример

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

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

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

String "PT1H30M15S"

Пример

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

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

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

String "PT2H15M"

Пример

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

val 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")

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

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

Пример

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

val 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")

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

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

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

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