[java] Joda-Time의 기간과 기간 계산

Joda-Time은 자바에서 날짜와 시간을 다루는 라이브러리로, 많은 유용한 기능을 제공합니다. 이 중에서도 기간(Duration)과 기간 계산에 대해 알아보겠습니다.

기간(Duration)

기간은 시간의 길이를 나타내는 개념입니다. 예를 들어 “2주”, “3일”, “5시간” 등과 같이 시간의 길이를 표현하는데 사용됩니다. Joda-Time에서 기간은 Duration 클래스를 사용하여 표현됩니다.

import org.joda.time.Duration;

Duration duration = new Duration(2 * 24 * 60 * 60 * 1000); // 2일을 밀리초로 표현한 기간
System.out.println(duration); // 출력: PT48H (2일을 호주 시간대 영어로 표현한 문자열)

위의 예제에서는 Duration 클래스를 사용하여 2일을 밀리초로 표현한 기간을 생성하였습니다. toString 메서드를 사용하면 기간을 문자열로 표현할 수 있습니다. 출력 결과는 “PT48H”로 나타나는데, 이는 2일이 호주 시간대(UTC+10)에서의 영어 표현이란 뜻입니다.

기간 계산

Joda-Time을 사용하면 기간을 쉽게 계산할 수 있습니다.

기간의 덧셈

Duration duration1 = new Duration(2 * 24 * 60 * 60 * 1000);
Duration duration2 = new Duration(3 * 24 * 60 * 60 * 1000);

Duration totalDuration = duration1.plus(duration2);
System.out.println(totalDuration); // 출력: PT120H (5일을 호주 시간대 영어로 표현한 문자열)

위의 예제에서는 2일과 3일을 각각 밀리초로 표현한 기간을 생성하고, plus 메서드를 사용하여 두 기간을 더한 후 새로운 기간을 생성합니다. 결과적으로 5일이 나오게 됩니다.

기간의 뺄셈

Duration duration1 = new Duration(5 * 24 * 60 * 60 * 1000);
Duration duration2 = new Duration(2 * 24 * 60 * 60 * 1000);

Duration remainingDuration = duration1.minus(duration2);
System.out.println(remainingDuration); // 출력: PT72H (3일을 호주 시간대 영어로 표현한 문자열)

위의 예제에서는 5일과 2일을 각각 밀리초로 표현한 기간을 생성하고, minus 메서드를 사용하여 첫 번째 기간에서 두 번째 기간을 뺀 후 새로운 기간을 생성합니다. 결과적으로 3일이 나오게 됩니다.

기간 계산을 통해 다양한 시간 연산을 쉽게 처리할 수 있습니다.

참고 자료