Функция isDurationEstimated

Функция isDurationEstimated интерфейса TemporalUnit проверяет, является ли длительность временной единицы оценкой. Временные единицы, основанные на датах, такие как MONTHS и YEARS, возвращают true, так как их точная длительность зависит от конкретной даты. Временные единицы, основанные на времени, такие как HOURS и MINUTES, возвращают false, так как их длительность фиксирована.

Импорт

kotlinimport java.time.temporal.TemporalUnit
import java.time.temporal.ChronoUnit

Синтаксис

kotlinfun isDurationEstimated(): Boolean

Пример

Проверим, является ли длительность единицы DAYS оценкой:

kotlinval isDaysEstimated = ChronoUnit.DAYS.isDurationEstimated()
println("Is DAYS estimated: $isDaysEstimated")

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

kotlinString "Is DAYS estimated: false"

Пример

Проверим, является ли длительность единицы MONTHS оценкой:

kotlinval isMonthsEstimated = ChronoUnit.MONTHS.isDurationEstimated()
println("Is MONTHS estimated: $isMonthsEstimated")

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

kotlinString "Is MONTHS estimated: true"

Пример

Сравним различные временные единицы:

kotlinval units = listOf(
  ChronoUnit.NANOS,
  ChronoUnit.SECONDS,
  ChronoUnit.HOURS,
  ChronoUnit.DAYS,
  ChronoUnit.WEEKS,
  ChronoUnit.MONTHS,
  ChronoUnit.YEARS
)

for (unit in units) {
  val isEstimated = unit.isDurationEstimated()
  println("${unit.name}: $isEstimated")
}

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

kotlinString "NANOS: false"
String "SECONDS: false"
String "HOURS: false"
String "DAYS: false"
String "WEEKS: false"
String "MONTHS: true"
String "YEARS: true"

Пример

Проверим все единицы из ChronoUnit:

kotlinval timeBasedUnits = mutableListOf<String>()
val dateBasedUnits = mutableListOf<String>()

for (unit in ChronoUnit.values()) {
  if (unit.isDurationEstimated()) {
    dateBasedUnits.add(unit.name)
  } else {
    timeBasedUnits.add(unit.name)
  }
}

println("Time-based units (exact duration): $timeBasedUnits")
println("Date-based units (estimated duration): $dateBasedUnits")

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

kotlinString "Time-based units (exact duration): [NANOS, MICROS, MILLIS, SECONDS, MINUTES, HOURS, HALF_DAYS]"
String "Date-based units (estimated duration): [DAYS, WEEKS, MONTHS, YEARS, DECADES, CENTURIES, MILLENNIA, ERAS]"

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

  • функцию getDuration интерфейса TemporalUnit,
    которая возвращает длительность временной единицы
  • функцию isDateBased интерфейса TemporalUnit,
    которая проверяет, основана ли единица на дате
  • функцию isTimeBased интерфейса TemporalUnit,
    которая проверяет, основана ли единица на времени
  • перечисление ChronoUnit,
    которое содержит стандартные временные единицы