Класс YearMonth
Класс YearMonth
представляет комбинацию года и месяца без информации о дне и времени в календарной системе ISO-8601.
Он предоставляет методы для получения информации о годе и месяце, проверки високосного года, получения длины месяца, а также для выполнения арифметических операций с годами и месяцами.
Импорт
import java.time.YearMonth
Синтаксис создания
fun now(): YearMonth
fun now(zone: ZoneId): YearMonth
fun of(year: Int, month: Int): YearMonth
fun of(year: Int, month: Month): YearMonth
fun parse(text: CharSequence): YearMonth
fun parse(text: CharSequence, formatter: DateTimeFormatter): YearMonth
Пример
Создадим объект YearMonth
для текущего года и месяца:
val currentYearMonth = YearMonth.now()
println(currentYearMonth)
Результат выполнения кода:
String "2025-09"
Пример
Создадим объект YearMonth
для декабря 2025 года:
val yearMonth = YearMonth.of(2025, 12)
println(yearMonth)
Результат выполнения кода:
String "2025-12"
Пример
Преобразуем строку "2025-07"
в объект YearMonth
:
val yearMonth = YearMonth.parse("2025-07")
println(yearMonth)
Результат выполнения кода:
String "2025-07"
Синтаксис методов
fun getYear(): Int
fun getMonthValue(): Int
fun getMonth(): Month
fun isLeapYear(): Boolean
fun lengthOfMonth(): Int
fun lengthOfYear(): Int
fun plusYears(yearsToAdd: Long): YearMonth
fun plusMonths(monthsToAdd: Long): YearMonth
fun minusYears(yearsToSubtract: Long): YearMonth
fun minusMonths(monthsToSubtract: Long): YearMonth
fun withYear(year: Int): YearMonth
fun withMonth(month: Int): YearMonth
fun atDay(dayOfMonth: Int): LocalDate
fun atEndOfMonth(): LocalDate
fun isAfter(other: YearMonth): Boolean
fun isBefore(other: YearMonth): Boolean
Пример
Получим информацию о годе и месяце:
val yearMonth = YearMonth.of(2025, 7)
val year = yearMonth.year
val month = yearMonth.monthValue
println("Year: $year, Month: $month")
Результат выполнения кода:
String "Year: 2025, Month: 7"
Пример
Проверим, является ли 2024 год високосным:
val yearMonth = YearMonth.of(2024, 1)
val isLeap = yearMonth.isLeapYear()
println("Is leap year: $isLeap")
Результат выполнения кода:
String "Is leap year: true"
Пример
Получим длину февраля 2025 года:
val yearMonth = YearMonth.of(2025, 2)
val length = yearMonth.lengthOfMonth()
println("Length of month: $length")
Результат выполнения кода:
String "Length of month: 28"
Пример
Добавим 3 месяца к текущей дате:
val current = YearMonth.now()
val future = current.plusMonths(3)
println("Current: $current, Future: $future")
Результат выполнения кода:
String "Current: 2025-09, Future: 2025-12"
Пример
Создадим объект LocalDate
для первого дня месяца:
val yearMonth = YearMonth.of(2025, 12)
val firstDay = yearMonth.atDay(1)
println("First day: $firstDay")
Результат выполнения кода:
String "First day: 2025-12-01"
Смотрите также
-
класс
LocalDate
,
который представляет дату с днем, месяцем и годом -
класс
Month
,
который представляет месяц года -
класс
Year
,
который представляет год -
класс
DateTimeFormatter
,
который используется для форматирования и парсинга дат