Статический метод dayOfWeekInMonth
Статический метод dayOfWeekInMonth класса TemporalAdjusters возвращает корректировщик, который находит n-й указанный день недели в месяце.
В первый параметр мы передаем порядковый номер дня недели в месяце (положительный для поиска от начала месяца, отрицательный для поиска от конца месяца), во второй параметр мы передаем день недели из перечисления DayOfWeek.
Импорт
import java.time.DayOfWeek
import java.time.temporal.TemporalAdjusters
Синтаксис
fun dayOfWeekInMonth(ordinal: Int, dayOfWeek: DayOfWeek): TemporalAdjuster
Пример
Найдем первый понедельник в декабре 2025 года:
import 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)
Результат выполнения кода:
String "2025-12-01"
Пример
Найдем последнюю пятницу в июле 2025 года (используя отрицательный порядковый номер):
val date = LocalDate.of(2025, 7, 1)
val lastFriday = date.with(TemporalAdjusters.dayOfWeekInMonth(-1, DayOfWeek.FRIDAY))
println(lastFriday)
Результат выполнения кода:
String "2025-07-25"
Пример
Найдем третий вторник в марте 2025 года:
val date = LocalDate.of(2025, 3, 1)
val thirdTuesday = date.with(TemporalAdjusters.dayOfWeekInMonth(3, DayOfWeek.TUESDAY))
println(thirdTuesday)
Результат выполнения кода:
String "2025-03-18"
Пример
Найдем четвертое воскресенье в ноябре 2025 года и получим его компоненты:
val 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")
Результат выполнения кода:
String "Year: 2025, Month: 11, Day: 23"
Смотрите также
-
метод
firstInMonthклассаTemporalAdjusters,
который находит первый указанный день недели в месяце -
метод
lastInMonthклассаTemporalAdjusters,
который находит последний указанный день недели в месяце -
перечисление
DayOfWeek,
которое содержит дни недели