Метод checkValidValue
Метод checkValidValue
класса ChronoField
проверяет, что переданное значение long находится в допустимом диапазоне для данного поля даты-времени.
В первый параметр мы передаем значение для проверки. Метод возвращает это же значение, если оно валидно, или выбрасывает исключение DateTimeException
, если значение выходит за пределы допустимого диапазона.
Импорт
import java.time.temporal.ChronoField
Синтаксис
fun checkValidValue(value: Long): Long
Пример
Проверим валидность значения для поля DAY_OF_MONTH
:
val dayValue = 15L
val validDay = ChronoField.DAY_OF_MONTH.checkValidValue(dayValue)
println("Valid day: $validDay")
Результат выполнения кода:
String "Valid day: 15"
Пример
Попробуем проверить невалидное значение для поля HOUR_OF_DAY
:
try {
val hourValue = 25L
val validHour = ChronoField.HOUR_OF_DAY.checkValidValue(hourValue)
println("Valid hour: $validHour")
} catch (e: Exception) {
println("Error: ${e.message}")
}
Результат выполнения кода:
String "Error: Invalid value for HourOfDay (valid values 0 - 23): 25"
Пример
Проверим несколько значений для разных полей:
val valuesToCheck = mapOf(
ChronoField.MONTH_OF_YEAR to 12L,
ChronoField.MINUTE_OF_HOUR to 59L,
ChronoField.SECOND_OF_MINUTE to 60L
)
valuesToCheck.forEach { (field, value) ->
try {
val result = field.checkValidValue(value)
println("$field: $value -> valid ($result)")
} catch (e: Exception) {
println("$field: $value -> invalid (${e.message})")
}
}
Результат выполнения кода:
String "MONTH_OF_YEAR: 12 -> valid (12)"
String "MINUTE_OF_HOUR: 59 -> valid (59)"
String "SECOND_OF_MINUTE: 60 -> invalid (Invalid value for SecondOfMinute (valid values 0 - 59): 60)"
Смотрите также
-
метод
checkValidIntValue
классаChronoField
,
который проверяет значения типа int -
метод
range
классаChronoField
,
который возвращает допустимый диапазон значений -
метод
checkValidValue
классаValueRange
,
который проверяет значения для диапазона -
класс
ChronoField
,
который содержит поля даты-времени