자주 쓰일만한 날짜 계산들을 대신 해주는 메서드를 정의해놓은 클래스
public interface TemporalAdjuster {
Temporal adjusInto(Temporal temporal)
}
메서드 | 설명 |
---|---|
dayOfWeekInMonth() | 주어진 요일이 몇 번째인지에 따라 날짜 조정 |
firstDayOfNextYear() | 다음 해의 첫 날 |
firstDayOfNextMonth() | 다음 달의 첫 날 |
firstDayOfYear() | 올해의 첫 날 |
firstDayOfMonth() | 이번 달의 첫 날 |
lastDayOfYear() | 올해의 마지막 날 |
lastDayOfMonth() | 이번 달의 마지막 날 |
firstInMonth(DayOfWeek dayOfWeek) | 이번 달의 첫 번째 요일 |
lastInMonth(DayOfWeek dayOfWeek) | 이번 달의 마지막 요일 |
previous(DayOfWeek dayOfWeek) | 지난 요일(당일 포함) |
previousOrSame(DayOfWeek dayOfWeek) | 지난 요일(당일 미포함) |
next(DayOfWeek dayOfWeek) | 다음 요일(당일 포함) |
nextOrSame(DayOfWeek dayOfWeek) | 다음 요일(당일 미포함) |
dayOfWeekInMonth(int ordinal, DayOfWeek dayOfWeek) | 이번 달의 n번째 요일 |
DayOfWeek
: 월~일을 나타내는 열거형public class TemporalAdjustersMain {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
System.out.println("오늘: " + today);
LocalDate firstMonday = today.with(firstInMonth(DayOfWeek.MONDAY));
System.out.println("이번 달의 첫 번째 월요일: " + firstMonday);
LocalDate lastFriday = today.with(lastInMonth(DayOfWeek.FRIDAY));
System.out.println("이번 달의 마지막 금요일: " + lastFriday);
LocalDate nextTuesday = today.with(nextOrSame(DayOfWeek.TUESDAY));
System.out.println("다음 화요일 (당일 포함): " + nextTuesday);
LocalDate previousThursday = today.with(previousOrSame(DayOfWeek.THURSDAY));
System.out.println("지난 목요일 (당일 포함): " + previousThursday);
LocalDate thirdWednesday = today.with(dayOfWeekInMonth(3, DayOfWeek.WEDNESDAY));
System.out.println("이번 달의 세 번째 수요일: " + thirdWednesday);
LocalDate firstDayOfMonth = today.with(firstDayOfMonth());
System.out.println("이번 달의 첫 날: " + firstDayOfMonth);
LocalDate lastDayOfMonth = today.with(lastDayOfMonth());
System.out.println("이번 달의 마지막 날: " + lastDayOfMonth);
LocalDate firstDayOfYear = today.with(firstDayOfYear());
System.out.println("올해의 첫 날: " + firstDayOfYear);
LocalDate lastDayOfYear = today.with(lastDayOfYear());
System.out.println("올해의 마지막 날: " + lastDayOfYear);
LocalDate firstDayOfNextYear = today.with(firstDayOfNextYear());
System.out.println("다음 해의 첫 날: " + firstDayOfNextYear);
}
}
오늘: 2024-06-23
이번 달의 첫 번째 월요일: 2024-06-03
이번 달의 마지막 금요일: 2024-06-28
다음 화요일 (당일 포함): 2024-06-25
지난 목요일 (당일 포함): 2024-06-20
이번 달의 세 번째 수요일: 2024-06-19
이번 달의 첫 날: 2024-06-01
이번 달의 마지막 날: 2024-06-30
올해의 첫 날: 2024-01-01
올해의 마지막 날: 2024-12-31
다음 해의 첫 날: 2025-01-01