Функция checkValidIntValue

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

Импорт

kotlinimport java.time.temporal.TemporalField
import java.time.temporal.ChronoField
import java.time.DateTimeException

Синтаксис

kotlinfun checkValidIntValue(value: Long, field: TemporalField): Int

Пример

Проверим допустимость значения 12 для поля ChronoField.HOUR_OF_DAY:

kotlinval field = ChronoField.HOUR_OF_DAY
val value = 12L
val res = field.checkValidIntValue(value, field)
println("Valid value: $res")

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

kotlinString "Valid value: 12"

Пример

Попытаемся проверить недопустимое значение 25 для поля ChronoField.HOUR_OF_DAY:

kotlinval field = ChronoField.HOUR_OF_DAY
val value = 25L

try {
  val res = field.checkValidIntValue(value, field)
  println("Valid value: $res")
} catch (e: DateTimeException) {
  println("Error: ${e.message}")
}

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

kotlinString "Error: Invalid value for HourOfDay (valid values 0 - 23): 25"

Пример

Проверим допустимость значения 29 для поля ChronoField.DAY_OF_MONTH в феврале 2025 года:

kotlinval field = ChronoField.DAY_OF_MONTH
val value = 29L

try {
  val res = field.checkValidIntValue(value, field)
  println("Valid value: $res")
} catch (e: DateTimeException) {
  println("Error: ${e.message}")
}

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

kotlinString "Error: Invalid value for DayOfMonth (valid values 1 - 28): 29"

Пример

Проверим несколько значений для поля ChronoField.MONTH_OF_YEAR:

kotlinval field = ChronoField.MONTH_OF_YEAR
val values = listOf(1L, 6L, 12L, 13L)

for (value in values) {
  try {
    val res = field.checkValidIntValue(value, field)
    println("Value $value is valid: $res")
  } catch (e: DateTimeException) {
    println("Value $value is invalid: ${e.message}")
  }
}

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

kotlinString "Value 1 is valid: 1"
String "Value 6 is valid: 6"
String "Value 12 is valid: 12"
String "Value 13 is invalid: Invalid value for MonthOfYear (valid values 1 - 12): 13"

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

  • функцию checkValidValue класса TemporalField,
    которая проверяет допустимость long значения для поля
  • функцию range класса ChronoField,
    которая возвращает допустимый диапазон значений для поля
  • функцию checkValidIntValue класса ValueRange,
    которая проверяет допустимость целочисленного значения в диапазоне
  • класс ChronoField,
    который содержит стандартные поля временной шкалы