Статический метод dayOfWeekInMonth

Статический метод dayOfWeekInMonth класса TemporalAdjusters возвращает корректировщик, который находит n-й указанный день недели в месяце. В первый параметр мы передаем порядковый номер дня недели в месяце (положительный для поиска от начала месяца, отрицательный для поиска от конца месяца), во второй параметр мы передаем день недели из перечисления DayOfWeek.

Импорт

kotlinimport java.time.DayOfWeek
import java.time.temporal.TemporalAdjusters

Синтаксис

kotlinfun dayOfWeekInMonth(ordinal: Int, dayOfWeek: DayOfWeek): TemporalAdjuster

Пример

Найдем первый понедельник в декабре 2025 года:

kotlinimport java.time.LocalDate
import java.time.DayOfWeek
import java.time.temporal.TemporalAdjusters

val date = LocalDate.of(2025, 12, 1)
val firstMonday = date.with(TemporalAdjusters.dayOfWeekInMonth(1, DayOfWeek.MONDAY))
println(firstMonday)

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

kotlinString "2025-12-01"

Пример

Найдем последнюю пятницу в июле 2025 года (используя отрицательный порядковый номер):

kotlinval date = LocalDate.of(2025, 7, 1)
val lastFriday = date.with(TemporalAdjusters.dayOfWeekInMonth(-1, DayOfWeek.FRIDAY))
println(lastFriday)

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

kotlinString "2025-07-25"

Пример

Найдем третий вторник в марте 2025 года:

kotlinval date = LocalDate.of(2025, 3, 1)
val thirdTuesday = date.with(TemporalAdjusters.dayOfWeekInMonth(3, DayOfWeek.TUESDAY))
println(thirdTuesday)

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

kotlinString "2025-03-18"

Пример

Найдем четвертое воскресенье в ноябре 2025 года и получим его компоненты:

kotlinval date = LocalDate.of(2025, 11, 1)
val fourthSunday = date.with(TemporalAdjusters.dayOfWeekInMonth(4, DayOfWeek.SUNDAY))

val year = fourthSunday.year
val month = fourthSunday.monthValue
val day = fourthSunday.dayOfMonth

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

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

kotlinString "Year: 2025, Month: 11, Day: 23"

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

  • метод firstInMonth класса TemporalAdjusters,
    который находит первый указанный день недели в месяце
  • метод lastInMonth класса TemporalAdjusters,
    который находит последний указанный день недели в месяце
  • перечисление DayOfWeek,
    которое содержит дни недели