[java] Joda-Time으로 특정 시간이 특정 범위 내에서 어느 요일에 해당하는지 확인하기

Joda-Time은 Java에서 날짜 및 시간과 관련된 작업을 수행하는 데 도움이 되는 라이브러리입니다. 이 라이브러리를 사용하여 특정 시간이 특정 범위 내에서 어느 요일에 해당하는지 확인하는 방법에 대해 알아보겠습니다.

Joda-Time 라이브러리 추가

먼저, Maven을 사용한다면 pom.xml 파일에 다음 의존성을 추가하여 Joda-Time 라이브러리를 가져와야 합니다:

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

Gradle을 사용한다면, build.gradle 파일에 다음 의존성을 추가합니다:

implementation 'joda-time:joda-time:2.10.10'

의존성을 추가한 후에는 프로젝트를 빌드하여 라이브러리를 가져와야 합니다.

특정 시간이 특정 범위 내에서 어느 요일에 해당하는지 확인하기

다음은 Joda-Time을 사용하여 특정 시간이 특정 범위 내에서 어느 요일에 해당하는지 확인하는 예입니다.

import org.joda.time.DateTime;
import org.joda.time.LocalDate;
import org.joda.time.Interval;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) {
        DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
        
        DateTime startTime = DateTime.parse("2021-01-01 09:00:00", formatter);
        DateTime endTime = DateTime.parse("2021-01-31 18:00:00", formatter);
        
        LocalDate targetDate = LocalDate.parse("2021-01-15");
        
        Interval interval = new Interval(startTime, endTime);
        
        if (interval.contains(targetDate.toDateTimeAtStartOfDay())) {
            System.out.println(targetDate.getDayOfWeek());
        } else {
            System.out.println("Target date is not within the specified range.");
        }
    }
}

이 코드는 2021년 1월 1일 09:00부터 2021년 1월 31일 18:00까지의 범위 내에서 2021년 1월 15일이 어느 요일에 해당하는지 확인합니다. 만약 해당 범위 내에 있다면, 해당하는 요일이 출력됩니다. 범위 내에 없다면, “Target date is not within the specified range.”라는 메시지가 출력됩니다.

이 예제에서는 Joda-Time의 DateTime, LocalDate, Interval, DateTimeFormatter 등을 사용하여 작업을 수행합니다.

결론

Joda-Time을 사용하여 특정 시간이 특정 범위 내에서 어느 요일에 해당하는지 확인하는 방법을 알아보았습니다. 이를 활용하여 날짜와 시간과 관련된 작업을 보다 효과적으로 수행할 수 있습니다.

참고 자료