Класс MonthDay

Класс MonthDay представляет комбинацию месяца и дня без года. Он полезен для представления дат, которые повторяются каждый год, таких как дни рождения или праздники. Объекты MonthDay являются неизменяемыми и потокобезопасными.

Импорт

kotlinimport java.time.MonthDay

Синтаксис создания

kotlinfun of(month: Int, dayOfMonth: Int): MonthDay
kotlinfun of(month: Month, dayOfMonth: Int): MonthDay
kotlinfun now(): MonthDay
kotlinfun now(zone: ZoneId): MonthDay
kotlinfun parse(text: CharSequence): MonthDay
kotlinfun parse(text: CharSequence, formatter: DateTimeFormatter): MonthDay

Пример

Создадим объект MonthDay для 31 декабря:

kotlinval md = MonthDay.of(12, 31)
println(md)

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

kotlinString "--12-31"

Пример

Создадим объект MonthDay с использованием перечисления Month:

kotlinimport java.time.Month

val md = MonthDay.of(Month.DECEMBER, 31)
println(md)

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

kotlinString "--12-31"

Пример

Получим текущие месяц и день:

kotlinval currentMd = MonthDay.now()
println(currentMd)

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

kotlinString "--09-11"

Пример

Парсинг строки в формате ISO-8601:

kotlinval md = MonthDay.parse("--12-31")
println(md)

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

kotlinString "--12-31"

Пример

Получим компоненты MonthDay:

kotlinval md = MonthDay.of(12, 31)

val month = md.monthValue
val day = md.dayOfMonth

println("Month: $month, Day: $day")

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

kotlinString "Month: 12, Day: 31"

Пример

Проверим валидность для конкретного года:

kotlinval md = MonthDay.of(2, 29)
val isValid2025 = md.isValidYear(2025)
val isValid2024 = md.isValidYear(2024)

println("Valid for 2025: $isValid2025")
println("Valid for 2024: $isValid2024")

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

kotlinString "Valid for 2025: false"
String "Valid for 2024: true"

Пример

Создадим полную дату с помощью года:

kotlinval md = MonthDay.of(12, 31)
val date = md.atYear(2025)
println(date)

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

kotlinString "2025-12-31"

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

  • класс LocalDate,
    который представляет полную дату
  • класс YearMonth,
    который представляет комбинацию года и месяца
  • класс Month,
    который представляет месяц года
  • класс Year,
    который представляет год