НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
922 of 1310 menu

Функция from

Функция from класса Period создает объект Period из временной единицы, реализующей интерфейс TemporalAmount. В параметр мы передаем объект, содержащий информацию о периоде времени, который необходимо преобразовать в Period.

Импорт

import java.time.Period import java.time.temporal.TemporalAmount

Синтаксис

fun from(amount: TemporalAmount): Period

Пример

Создадим объект Period из другого объекта Period:

val originalPeriod = Period.of(2, 5, 15) val newPeriod = Period.from(originalPeriod) println(newPeriod)

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

String "P2Y5M15D"

Пример

Попытка создания Period из неподдерживаемого типа временной единицы:

import java.time.Duration try { val duration = Duration.ofHours(48) val period = Period.from(duration) println(period) } catch (e: Exception) { println("Error: " + e.message) }

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

String "Error: Unable to convert to Period"

Пример

Использование Period.from с кастомной реализацией TemporalAmount:

import java.time.temporal.TemporalAmount import java.time.temporal.TemporalUnit import java.time.temporal.ChronoUnit import java.util.List val customAmount = object : TemporalAmount { override fun get(unit: TemporalUnit): Long { return when (unit) { ChronoUnit.YEARS -> 1 ChronoUnit.MONTHS -> 6 ChronoUnit.DAYS -> 10 else -> 0 } } override fun getUnits(): List<TemporalUnit> { return listOf(ChronoUnit.YEARS, ChronoUnit.MONTHS, ChronoUnit.DAYS) } override fun addTo(temporal: java.time.temporal.Temporal): java.time.temporal.Temporal { return temporal.plus(1, ChronoUnit.YEARS) .plus(6, ChronoUnit.MONTHS) .plus(10, ChronoUnit.DAYS) } override fun subtractFrom(temporal: java.time.temporal.Temporal): java.time.temporal.Temporal { return temporal.minus(1, ChronoUnit.YEARS) .minus(6, ChronoUnit.MONTHS) .minus(10, ChronoUnit.DAYS) } } val period = Period.from(customAmount) println(period)

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

String "P1Y6M10D"

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

  • функцию of класса Period,
    которая создает период из отдельных компонентов
  • функцию parse класса Period,
    которая преобразует строку в период
  • функцию between класса Period,
    которая вычисляет период между двумя датами
  • интерфейс TemporalAmount,
    который представляет временной промежуток
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить