Метод checkValidIntValue

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

Импорт

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

Синтаксис

kotlinint checkValidIntValue(long value)
kotlinint checkValidIntValue(long value, TemporalUnit unit)

Пример

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

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

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

kotlinString "Valid value: 12"

Пример

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

kotlintry {
  val value = 25L
  val res = ChronoField.HOUR_OF_DAY.checkValidIntValue(value)
  println("Valid value: $res")
} catch (e: DateTimeException) {
  println("Error: ${e.message}")
}

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

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

Пример

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

kotlinval dayValue = 29L
val res = ChronoField.DAY_OF_MONTH.checkValidIntValue(dayValue)
println("Valid day: $res")

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

kotlinString "Valid day: 29"

Пример

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

kotlinval values = mapOf(
  ChronoField.MINUTE_OF_HOUR to 30L,
  ChronoField.SECOND_OF_MINUTE to 45L,
  ChronoField.MONTH_OF_YEAR to 6L
)

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

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

kotlinString "MINUTE_OF_HOUR: 30 - valid"
String "SECOND_OF_MINUTE: 45 - valid"
String "MONTH_OF_YEAR: 6 - valid"

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

  • метод checkValidValue класса ChronoField,
    который проверяет long-значение для временного поля
  • метод checkValidIntValue класса ValueRange,
    который проверяет целочисленное значение в диапазоне
  • поле HOUR_OF_DAY класса ChronoField,
    которое представляет час дня
  • поле DAY_OF_MONTH класса ChronoField,
    которое представляет день месяца