Класс TemporalAdjusters
Класс TemporalAdjusters предоставляет набор стандартных корректировщиков для изменения объектов временных типов, таких как LocalDate.
Корректировщики позволяют находить первый или последний день месяца, следующий указанный день недели, последний день года и другие распространенные временные точки.
Импорт
import java.time.LocalDate
import java.time.DayOfWeek
import java.time.temporal.TemporalAdjusters
Синтаксис
// Первый день месяца
fun firstDayOfMonth(): TemporalAdjuster
// Последний день месяца
fun lastDayOfMonth(): TemporalAdjuster
// Первый день следующего месяца
fun firstDayOfNextMonth(): TemporalAdjuster
// Первый день года
fun firstDayOfYear(): TemporalAdjuster
// Последний день года
fun lastDayOfYear(): TemporalAdjuster
// Первый день следующего года
fun firstDayOfNextYear(): TemporalAdjuster
// Первый указанный день недели в месяце
fun firstInMonth(dayOfWeek: DayOfWeek): TemporalAdjuster
// Последний указанный день недели в месяце
fun lastInMonth(dayOfWeek: DayOfWeek): TemporalAdjuster
// n-ный указанный день недели в месяце
fun dayOfWeekInMonth(ordinal: Int, dayOfWeek: DayOfWeek): TemporalAdjuster
// Следующий указанный день недели
fun next(dayOfWeek: DayOfWeek): TemporalAdjuster
// Следующий указанный день недели (или тот же, если уже совпадает)
fun nextOrSame(dayOfWeek: DayOfWeek): TemporalAdjuster
// Предыдущий указанный день недели
fun previous(dayOfWeek: DayOfWeek): TemporalAdjuster
// Предыдущий указанный день недели (или тот же, если уже совпадает)
fun previousOrSame(dayOfWeek: DayOfWeek): TemporalAdjuster
Пример
Найдем первый день месяца для даты "2025-07-15":
val date = LocalDate.of(2025, 7, 15)
val firstDay = date.with(TemporalAdjusters.firstDayOfMonth())
println(firstDay)
Результат выполнения кода:
String "2025-07-01"
Пример
Найдем последний день месяца для даты "2025-02-15":
val date = LocalDate.of(2025, 2, 15)
val lastDay = date.with(TemporalAdjusters.lastDayOfMonth())
println(lastDay)
Результат выполнения кода:
String "2025-02-28"
Пример
Найдем следующий понедельник после даты "2025-07-15":
val date = LocalDate.of(2025, 7, 15)
val nextMonday = date.with(TemporalAdjusters.next(DayOfWeek.MONDAY))
println(nextMonday)
Результат выполнения кода:
String "2025-07-21"
Пример
Найдем последнюю пятницу месяца для даты "2025-07-15":
val date = LocalDate.of(2025, 7, 15)
val lastFriday = date.with(TemporalAdjusters.lastInMonth(DayOfWeek.FRIDAY))
println(lastFriday)
Результат выполнения кода:
String "2025-07-25"
Пример
Найдем первый день следующего года для даты "2025-07-15":
val date = LocalDate.of(2025, 7, 15)
val firstDayNextYear = date.with(TemporalAdjusters.firstDayOfNextYear())
println(firstDayNextYear)
Результат выполнения кода:
String "2026-01-01"