[java] 자바 8 날짜와 시간 API에서 기간 계산하기

Java 8부터 도입된 새로운 날짜와 시간 API를 사용하면 날짜와 시간을 다루는 작업을 쉽고 효율적으로 처리할 수 있습니다. 이 API는 java.time 패키지에 정의되어 있으며, LocalDate, LocalTime, LocalDateTime, Period, Duration 등 다양한 클래스와 메소드를 제공합니다.

이번에는 Java 8 날짜와 시간 API의 Period 클래스를 사용하여 두 개의 날짜 사이의 기간을 계산하는 방법에 대해 알아보겠습니다.

Period 클래스

Period 클래스는 두 LocalDate 객체 사이의 기간을 표현하는 데 사용됩니다. Period 객체는 년, 월, 일로 구성되며, 두 날짜의 차이를 표현할 수 있습니다.

import java.time.LocalDate;
import java.time.Period;

public class PeriodExample {
    public static void main(String[] args) {
        LocalDate startDate = LocalDate.of(2022, 1, 1);
        LocalDate endDate = LocalDate.of(2022, 12, 31);

        Period period = Period.between(startDate, endDate);
        System.out.println("기간: " + period.getYears() + "년 " + period.getMonths() + "개월 " + period.getDays() + "일");
    }
}

위 예제에서는 LocalDate 클래스를 사용하여 시작 날짜와 종료 날짜를 생성한 후, Period.between() 메소드를 사용하여 두 날짜 사이의 기간을 계산합니다. Period 객체의 getYears(), getMonths(), getDays() 메소드를 사용하여 년, 월, 일 단위로 기간을 얻을 수 있습니다.

결과는 다음과 같이 출력될 것입니다:

기간: 0년 11개월 30일

위 예제에서는 시작 날짜와 종료 날짜가 한 해 차이나므로, 11개월 30일의 기간을 출력합니다.

결론

Java 8의 날짜와 시간 API를 사용하면 기간을 더 쉽게 계산하고 처리할 수 있습니다. Period 클래스를 사용하여 두 날짜 사이의 기간을 계산하는 방법을 알아보았습니다. 이를 응용하여 다양한 날짜와 시간 연산을 수행할 수 있습니다.

더 자세한 내용은 Java 8 날짜와 시간 API 공식 문서를 참조하세요.