Класс ValueRange

Класс ValueRange используется для определения допустимого диапазона значений для временных полей в API даты и времени. Он содержит минимальное и максимальное значение, а также информацию о том, является ли диапазон фиксированным. Этот класс особенно полезен при валидации временных значений и определении границ для таких полей, как день месяца, который может варьироваться от 1 до 28, 29, 30 или 31 в зависимости от месяца и года.

Импорт

kotlinimport java.time.temporal.ValueRange

Синтаксис

kotlinval range = ValueRange.of(min: Long, max: Long): ValueRange
kotlinval range = ValueRange.of(min: Long, maxSmallest: Long, maxLargest: Long): ValueRange
kotlinval range = ValueRange.of(min: Long, minSmallest: Long, minLargest: Long, max: Long): ValueRange

Пример

Создадим простой диапазон значений от 1 до 31:

kotlinval dayRange = ValueRange.of(1, 31)
println("Min: " + dayRange.minimum)
println("Max: " + dayRange.maximum)

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

kotlinLong 1
Long 31

Пример

Проверим, является ли значение 15 допустимым в диапазоне:

kotlinval range = ValueRange.of(1, 31)
val isValid = range.isValidValue(15)
println("Is 15 valid: $isValid")

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

kotlinBoolean true

Пример

Проверим, является ли значение 35 допустимым в диапазоне:

kotlinval range = ValueRange.of(1, 31)
val isValid = range.isValidValue(35)
println("Is 35 valid: $isValid")

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

kotlinBoolean false

Пример

Создадим диапазон с разными минимальными и максимальными границами:

kotlinval range = ValueRange.of(1, 28, 31)
println("Minimum: " + range.minimum)
println("Smallest maximum: " + range.smallestMaximum)
println("Largest maximum: " + range.largestMaximum)

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

kotlinLong 1
Long 28
Long 31

Пример

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

kotlinimport java.time.YearMonth

val feb2025 = YearMonth.of(2025, 2)
val dayRange = feb2025.range(ChronoField.DAY_OF_MONTH)

println("February 2025 day range: " + dayRange.minimum + " to " + dayRange.maximum)

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

kotlinString "February 2025 day range: 1 to 28"

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

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