[java] Joda-Time으로 특정 요일이 특정 날짜 범위와 겹치는 날짜 구하기

Joda-Time은 Java에서 날짜와 시간을 다루는 라이브러리로, 특정 요일이 특정 날짜 범위와 겹치는 날짜를 구하는 것은 Joda-Time을 사용하여 간단하게 할 수 있습니다.

사용 방법

먼저, Joda-Time 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 아래의 의존성을 추가합니다.

<dependency>
    <groupId>joda-time</groupId>
    <artifactId>joda-time</artifactId>
    <version>2.10.10</version>
</dependency>

다음으로, 주어진 날짜 범위와 특정 요일을 기준으로 하여 겹치는 날짜를 구하려면 다음과 같은 코드를 사용할 수 있습니다.

import org.joda.time.DateTime;
import org.joda.time.DateTimeConstants;
import org.joda.time.Interval;
import org.joda.time.LocalDate;

public class Main {

    public static void main(String[] args) {
        LocalDate startDate = new LocalDate(2021, 1, 1);
        LocalDate endDate = new LocalDate(2021, 12, 31); // 날짜 범위 설정
        
        int targetDayOfWeek = DateTimeConstants.MONDAY; // 원하는 요일 설정

        LocalDate currentDate = startDate;
        while (currentDate.isBefore(endDate)) {
            if (currentDate.getDayOfWeek() == targetDayOfWeek) { // 요일이 일치하는 경우
                System.out.println(currentDate);
            }
           currentDate = currentDate.plusDays(1); // 다음 날짜로 이동
        }
    }
}

위의 예제 코드를 실행하면, 2021년 1월 1일부터 12월 31일까지의 모든 월요일을 출력합니다.

결론

Joda-Time을 사용하여 특정 요일이 특정 날짜 범위와 겹치는 날짜를 구하는 것은 매우 간단합니다. Joda-Time은 Java에서 날짜와 시간을 다루는 데에 매우 유용한 라이브러리이며, 다양한 기능을 제공합니다. 다양한 날짜 및 시간 연산을 수행할 수 있으므로, 프로젝트에서 날짜 및 시간을 다룰 때 Joda-Time을 고려해보세요.

참고 자료