Статический метод ofDateAdjuster
Статический метод ofDateAdjuster класса TemporalAdjusters создает пользовательский корректировщик дат на основе лямбда-выражения.
В параметр мы передаем функцию, которая принимает объект LocalDate и возвращает новый объект LocalDate с примененными изменениями.
Импорт
import java.time.LocalDate
import java.time.temporal.TemporalAdjusters
Синтаксис
fun ofDateAdjuster(adjuster: (LocalDate) -> LocalDate): TemporalAdjuster
Пример
Создадим корректировщик, который добавляет 10 дней к текущей дате:
val addTenDaysAdjuster = TemporalAdjusters.ofDateAdjuster { date -> date.plusDays(10) }
val currentDate = LocalDate.of(2025, 6, 15)
val adjustedDate = currentDate.with(addTenDaysAdjuster)
println("Original date: $currentDate")
println("Adjusted date: $adjustedDate")
Результат выполнения кода:
String "Original date: 2025-06-15"
String "Adjusted date: 2025-06-25"
Пример
Создадим корректировщик, который устанавливает последний день месяца:
val lastDayOfMonthAdjuster = TemporalAdjusters.ofDateAdjuster { date ->
date.withDayOfMonth(date.lengthOfMonth())
}
val testDate = LocalDate.of(2025, 2, 15)
val resultDate = testDate.with(lastDayOfMonthAdjuster)
println("Test date: $testDate")
println("Result date: $resultDate")
Результат выполнения кода:
String "Test date: 2025-02-15"
String "Result date: 2025-02-28"
Пример
Создадим корректировщик, который переходит к следующему понедельнику:
val nextMondayAdjuster = TemporalAdjusters.ofDateAdjuster { date ->
var current = date
val targetDay = java.time.DayOfWeek.MONDAY
while (current.dayOfWeek != targetDay) {
current = current.plusDays(1)
}
current
}
val fridayDate = LocalDate.of(2025, 7, 18)
val mondayDate = fridayDate.with(nextMondayAdjuster)
println("Friday date: $fridayDate")
println("Next Monday: $mondayDate")
Результат выполнения кода:
String "Friday date: 2025-07-18"
String "Next Monday: 2025-07-21"
Смотрите также
-
функцию
firstDayOfMonthклассаTemporalAdjusters,
которая возвращает первый день месяца -
функцию
lastDayOfMonthклассаTemporalAdjusters,
которая возвращает последний день месяца -
функцию
plusDaysклассаLocalDate,
которая добавляет дни к дате