Класс MonthDay
Класс MonthDay представляет комбинацию месяца и дня без года.
Он полезен для представления дат, которые повторяются каждый год, таких как дни рождения или праздники.
Объекты MonthDay являются неизменяемыми и потокобезопасными.
Импорт
import java.time.MonthDay
Синтаксис создания
fun of(month: Int, dayOfMonth: Int): MonthDay
fun of(month: Month, dayOfMonth: Int): MonthDay
fun now(): MonthDay
fun now(zone: ZoneId): MonthDay
fun parse(text: CharSequence): MonthDay
fun parse(text: CharSequence, formatter: DateTimeFormatter): MonthDay
Пример
Создадим объект MonthDay для 31 декабря:
val md = MonthDay.of(12, 31)
println(md)
Результат выполнения кода:
String "--12-31"
Пример
Создадим объект MonthDay с использованием перечисления Month:
import java.time.Month
val md = MonthDay.of(Month.DECEMBER, 31)
println(md)
Результат выполнения кода:
String "--12-31"
Пример
Получим текущие месяц и день:
val currentMd = MonthDay.now()
println(currentMd)
Результат выполнения кода:
String "--09-11"
Пример
Парсинг строки в формате ISO-8601:
val md = MonthDay.parse("--12-31")
println(md)
Результат выполнения кода:
String "--12-31"
Пример
Получим компоненты MonthDay:
val md = MonthDay.of(12, 31)
val month = md.monthValue
val day = md.dayOfMonth
println("Month: $month, Day: $day")
Результат выполнения кода:
String "Month: 12, Day: 31"
Пример
Проверим валидность для конкретного года:
val 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")
Результат выполнения кода:
String "Valid for 2025: false"
String "Valid for 2024: true"
Пример
Создадим полную дату с помощью года:
val md = MonthDay.of(12, 31)
val date = md.atYear(2025)
println(date)
Результат выполнения кода:
String "2025-12-31"