[java] 자바 11에서 추가된 기간을 활용한 날짜 연산 방법

자바 11에는 java.time 패키지가 도입되었습니다. 이 패키지는 날짜와 시간을 다루기 위한 많은 기능들을 포함하고 있습니다. 이 중에서도 기간을 활용한 날짜 연산 방법은 매우 유용합니다.

기간(Period) 객체 생성하기

기간(Period) 객체는 두 날짜 사이의 차이를 표현하는 데 사용됩니다. Period 객체를 생성하기 위해서는 Period.of 메서드를 사용할 수 있습니다. 예를 들어, 다음과 같이 두 날짜 사이의 기간을 생성할 수 있습니다.

LocalDate startDate = LocalDate.of(2022, 1, 1);
LocalDate endDate = LocalDate.of(2022, 12, 31);

Period period = Period.between(startDate, endDate);

기간 연산하기

Period 객체를 이용하여 날짜 연산을 수행할 수 있습니다. plus 메서드와 minus 메서드를 사용하여 날짜에 기간을 더하거나 빼는 것이 가능합니다.

LocalDate startDate = LocalDate.of(2022, 1, 1);
Period period = Period.ofMonths(6);

LocalDate endDate = startDate.plus(period); // startDate에 6개월을 더한 날짜를 구함

기간 비교하기

Period 객체를 이용하여 두 날짜의 차이를 비교하는 것도 가능합니다. isNegative, isZero, isPositive 메서드를 사용하여 기간의 부호를 확인할 수 있습니다.

LocalDate startDate = LocalDate.of(2022, 1, 1);
LocalDate endDate = LocalDate.of(2022, 12, 31);

Period period = Period.between(startDate, endDate);

if (period.isNegative()) {
    System.out.println("endDate가 startDate보다 이전입니다.");
} else if (period.isZero()) {
    System.out.println("endDate와 startDate가 같은 날짜입니다.");
} else {
    System.out.println("endDate가 startDate보다 이후입니다.");
}

결론

자바 11에서 추가된 기간을 활용한 날짜 연산 방법을 알아보았습니다. 기간을 통해 두 날짜의 차이를 표현하고 연산하는 것은 날짜와 시간을 다루는 작업에서 매우 유용하게 활용될 수 있습니다. 자바 11 이상의 버전을 사용하고 있다면, java.time 패키지의 기간 클래스를 적극적으로 활용해보세요.