Функция rangeRefinedBy

Функция rangeRefinedBy интерфейса TemporalField возвращает объект ValueRange, представляющий диапазон допустимых значений для данного временного поля с учетом конкретного временного объекта. В параметр мы передаем временный объект, который предоставляет контекст для уточнения диапазона значений.

Импорт

kotlinimport java.time.temporal.TemporalField
import java.time.temporal.ValueRange
import java.time.LocalDate

Синтаксис

kotlinfun rangeRefinedBy(temporal: TemporalAccessor): ValueRange

Пример

Получим диапазон значений для дня месяца в феврале 2025 года:

kotlinval date = LocalDate.of(2025, 2, 1)
val range = ChronoField.DAY_OF_MONTH.rangeRefinedBy(date)
println(range)

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

kotlinValueRange 1 - 28

Пример

Получим диапазон значений для дня месяца в январе 2025 года:

kotlinval date = LocalDate.of(2025, 1, 1)
val range = ChronoField.DAY_OF_MONTH.rangeRefinedBy(date)
println(range)

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

kotlinValueRange 1 - 31

Пример

Получим диапазон значений для дня месяца в високосном году:

kotlinval date = LocalDate.of(2024, 2, 1)
val range = ChronoField.DAY_OF_MONTH.rangeRefinedBy(date)
println(range)

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

kotlinValueRange 1 - 29

Пример

Получим диапазон значений для часа дня:

kotlinimport java.time.LocalTime

val time = LocalTime.of(12, 0)
val range = ChronoField.HOUR_OF_DAY.rangeRefinedBy(time)
println(range)

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

kotlinValueRange 0 - 23

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

  • функцию range класса ChronoField,
    которая возвращает общий диапазон значений временного поля
  • класс ValueRange,
    который представляет диапазон значений
  • функцию isLeapYear класса LocalDate,
    которая проверяет високосный год
  • функцию lengthOfMonth класса LocalDate,
    которая возвращает длину месяца