Класс 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"