자바 8부터 기간을 표현하고 다루기 위해 Period 클래스가 추가되었습니다. Period 클래스는 년, 월, 일 단위의 기간을 나타내는 클래스로, 날짜와 관련된 연산을 수행할 때 유용하게 사용될 수 있습니다.
Period 클래스의 활용 방법을 살펴보겠습니다.
-
Period 객체 생성 Period 클래스의 인스턴스를 생성하기 위해서는
Period.of
메서드를 사용합니다. 이 메서드는 두 개의 매개변수를 받으며, 첫 번째 매개변수는 년, 월, 일 단위의 기간을 지정하고, 두 번째 매개변수는 명시적으로 지정하지 않을 경우 기본 값으로 1을 가집니다.Period period = Period.of(1, 2, 3); // 1년 2개월 3일
위의 코드는 1년 2개월 3일을 나타내는 Period 객체를 생성합니다.
-
Period 객체의 값 읽기 Period 객체의 년, 월, 일 값을 읽기 위해서는 get 메서드를 사용합니다. get 메서드는 ChronoUnit 열거 상수를 인수로 받아 그에 해당하는 값을 리턴합니다. 또한, Period 클래스는 각 필드에 해당하는 상수를 정의하고 있으므로, 필드의 이름으로 값을 읽을 수도 있습니다.
int years = period.get(ChronoUnit.YEARS); // 년 수 int months = period.get(ChronoUnit.MONTHS); // 월 수 int days = period.get(ChronoUnit.DAYS); // 일 수 int years = period.getYears(); int months = period.getMonths(); int days = period.getDays();
위의 코드는 Period 객체에서 년, 월, 일 값을 읽어오는 방법을 보여줍니다.
-
Period 객체의 값 변경 Period 객체의 년, 월, 일 값을 변경하기 위해서는 with 메서드를 사용합니다. with 메서드는 ChronoUnit 열거 상수와 새로운 값을 인수로 받아 변경된 Period 객체를 리턴합니다. 또한, Period 클래스는 각 필드에 해당하는 with 메서드를 정의하고 있으므로, 필드의 이름으로 값을 변경할 수도 있습니다.
Period newPeriod = period.with(ChronoUnit.YEARS, 2); // 년 수를 2로 변경 Period newPeriod = period.withYears(2);
위의 코드는 Period 객체의 년 값을 2로 변경하는 예시입니다.
-
Period 객체의 합산 및 차이 계산 Period 객체를 합산하거나 차이를 계산하기 위해서는 plus와 minus 메서드를 사용합니다. 이 메서드는 Period 객체와 Duration 객체를 인수로 받으며, 기존 객체에 해당 값을 추가하거나 뺀 새로운 Period 객체를 리턴합니다.
Period sumPeriod = period.plus(Period.of(1, 1, 1)); // period에 1년 1개월 1일을 더한 결과 Period diffPeriod = period.minus(Period.of(0, 1, 1)); // period에서 1개월 1일을 뺀 결과
위의 코드는 Period 객체와 다른 Period 객체를 합산하거나 차이를 계산하는 방법을 보여줍니다.
Period 클래스는 날짜와 관련된 연산을 간편하게 수행할 수 있도록 도와주는 유용한 클래스입니다. 이를 활용하여 날짜를 다루는 로직을 보다 쉽게 구현할 수 있습니다.
더 자세한 내용은 Java 공식 문서를 참고하시기 바랍니다.