[Java] TemporalAdjusters 클래스

Yujeong·2024년 6월 23일
0

Java

목록 보기
18/22
post-thumbnail

TemporalAdjusters 클래스

자주 쓰일만한 날짜 계산들을 대신 해주는 메서드를 정의해놓은 클래스

  • 이번 달의 2번째 금요일은 며칠인지
  • 2주 전의 수요일이 며칠인지

TemporalAdjusters 인터페이스

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

참고
Class TemporalAdjusters
Java의 정석

profile
공부 기록

0개의 댓글

관련 채용 정보