Функция withDayOfYear

Функция withDayOfYear класса LocalDate возвращает копию текущей даты с измененным днем года. В параметр мы передаем номер дня в году, который должен быть в диапазоне от 1 до 365 или 366 для високосного года.

Импорт

kotlinimport java.time.LocalDate

Синтаксис

kotlinfun withDayOfYear(dayOfYear: Int): LocalDate

Пример

Установим 100-й день года для даты "2025-03-15":

kotlinval originalDate = LocalDate.parse("2025-03-15")
val newDate = originalDate.withDayOfYear(100)
println(newDate)

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

kotlinString "2025-04-10"

Пример

Установим 366-й день года для високосного 2024 года:

kotlinval leapYearDate = LocalDate.of(2024, 1, 1)
val lastDay = leapYearDate.withDayOfYear(366)
println(lastDay)

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

kotlinString "2024-12-31"

Пример

Проверим обработку недопустимых значений дня года:

kotlinval date = LocalDate.parse("2025-06-15")

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

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

kotlinString "Error: Invalid value for DayOfYear (valid values 1 - 365): 400"

Пример

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

kotlinval date = LocalDate.now()
val firstDayOfYear = date.withDayOfYear(1)
val midYear = date.withDayOfYear(183)

println("First day: $firstDayOfYear")
println("Mid year: $midYear")
println("Current: $date")

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

kotlinString "First day: 2025-01-01"
String "Mid year: 2025-07-02"
String "Current: 2025-09-10"

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

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