Функция withYear

Функция withYear класса LocalDate возвращает копию исходной даты с измененным годом. В параметр мы передаем целое число - новый год. Если полученная дата будет невалидной (например, 29 февраля в невисокосном году), будет выброшено исключение.

Импорт

kotlinimport java.time.LocalDate

Синтаксис

kotlinfun withYear(year: Int): LocalDate

Пример

Изменим год даты "2025-06-15" на 2028:

kotlinval originalDate = LocalDate.of(2025, 6, 15)
val newDate = originalDate.withYear(2028)
println(newDate)

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

kotlinString "2028-06-15"

Пример

Попробуем установить невалидную дату - 29 февраля в невисокосном году:

kotlinval date = LocalDate.of(2024, 2, 29)

try {
  val invalidDate = date.withYear(2025)
  println(invalidDate)
} catch (e: Exception) {
  println("Error: " + e.message)
}

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

kotlinString "Error: Invalid date 'February 29' as '2025' is not a leap year"

Пример

Изменим год несколько раз подряд:

kotlinval date = LocalDate.of(2025, 3, 10)
val result = date.withYear(2030).withYear(2015)
println(result)

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

kotlinString "2015-03-10"

Пример

Изменим год и проверим другие компоненты даты:

kotlinval originalDate = LocalDate.of(2025, 12, 31)
val modifiedDate = originalDate.withYear(2030)

println("Original: " + originalDate)
println("Modified: " + modifiedDate)
println("Month: " + modifiedDate.monthValue)
println("Day: " + modifiedDate.dayOfMonth)

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

kotlinString "Original: 2025-12-31"
String "Modified: 2030-12-31"
String "Month: 12"
String "Day: 31"

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

  • функцию withMonth класса LocalDate,
    которая изменяет месяц даты
  • функцию withDayOfMonth класса LocalDate,
    которая изменяет день месяца
  • функцию getYear класса LocalDate,
    которая возвращает год даты
  • функцию withYear класса LocalDateTime,
    которая изменяет год даты-времени