АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP, Python или фреймворки. Сегодня последний день для записи! Жми!
923 of 1310 menu
Бесплатный курс по выкладке сайтов на хостинг. Разбираем все нюансы! Начало 14 октября. Жми для записи!

Класс 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,
    который представляет мгновение на временной шкале