Класс Month

Класс Month представляет собой перечисление месяцев года от 1 (январь) до 12 (декабрь). Каждый месяц имеет числовое значение, название и предоставляет методы для получения информации о количестве дней в месяце, проверки високосного года, получения первого дня года и другие полезные методы.

Импорт

kotlinimport java.time.Month

Синтаксис

kotlin// Получение месяца по числовому значению
fun of(month: Int): Month

// Получение месяца из временного объекта
fun from(temporal: TemporalAccessor): Month

// Получение числового значения месяца
fun getValue(): Int

// Получение количества дней в месяце с учетом високосного года
fun length(leapYear: Boolean): Int

// Получение минимального количества дней в месяце
fun minLength(): Int

// Получение максимального количества дней в месяце
fun maxLength(): Int

// Получение первого дня года для месяца
fun firstDayOfYear(leapYear: Boolean): Int

// Получение первого месяца квартала
fun firstMonthOfQuarter(): Month

// Прибавление месяцев
fun plus(months: Long): Month

// Вычитание месяцев
fun minus(months: Long): Month

Пример

Получим месяц по числовому значению и выведем его свойства:

kotlinval month = Month.of(7)
val monthValue = month.value
val monthName = month.name
val length = month.length(false)

println("Month: $monthName, Value: $monthValue, Days: $length")

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

kotlinString "Month: JULY, Value: 7, Days: 31"

Пример

Получим количество дней в феврале для високосного и невисокосного года:

kotlinval february = Month.FEBRUARY
val lengthNormal = february.length(false)
val lengthLeap = february.length(true)

println("February normal: $lengthNormal, leap: $lengthLeap")

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

kotlinString "February normal: 28, leap: 29"

Пример

Получим первый день года для каждого месяца:

kotlinfor (month in Month.values()) {
  val firstDay = month.firstDayOfYear(false)
  println("${month.name}: first day $firstDay")
}

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

kotlinString "JANUARY: first day 1"
String "FEBRUARY: first day 32"
String "MARCH: first day 60"
String "APRIL: first day 91"
String "MAY: first day 121"
String "JUNE: first day 152"
String "JULY: first day 182"
String "AUGUST: first day 213"
String "SEPTEMBER: first day 244"
String "OCTOBER: first day 274"
String "NOVEMBER: first day 305"
String "DECEMBER: first day 335"

Пример

Используем методы plus и minus для работы с месяцами:

kotlinval january = Month.JANUARY
val march = january.plus(2)
val november = january.minus(2)

println("January + 2 = ${march.name}")
println("January - 2 = ${november.name}")

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

kotlinString "January + 2 = MARCH"
String "January - 2 = NOVEMBER"

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

  • класс LocalDate,
    который представляет дату без времени
  • метод getMonth класса LocalDate,
    который возвращает месяц из даты
  • метод withMonth класса LocalDate,
    который устанавливает месяц в дате
  • класс YearMonth,
    который представляет год и месяц