본문 바로가기

JAVA/날짜/시간

자바/Java Calendar 사용법 (기본예제 포함) - 3 -

자바/Java Calendar 사용법 (기본예제 포함)  - 3 -



CalendarEx3.java

package arabiannight.tistory.com.calendardate;

import java.util.*;

class  CalendarEx3
{
	public static void main(String[] args) 
	{
		final int[] TIME_UNIT = {3600, 60, 1}; // 큰 단위를 앞에 놓는다.
		final String[] TIME_UNIT_NAME = {"시간 ", "분 ", "초"};

		Calendar time1 = Calendar.getInstance();
		Calendar time2 = Calendar.getInstance();

		// time1의 시간을 10시 20분 30초로 설정한다.
		time1.set(Calendar.HOUR_OF_DAY, 10);
		time1.set(Calendar.MINUTE, 20);
		time1.set(Calendar.SECOND, 30);

		// time2의 시간을 20시 30분 10초로 설정한다.
		time2.set(Calendar.HOUR_OF_DAY, 20);
		time2.set(Calendar.MINUTE, 30);
		time2.set(Calendar.SECOND, 10);

		System.out.println("time1 :"+time1.get(Calendar.HOUR_OF_DAY)+"시 " +
		time1.get(Calendar.MINUTE) +"분 " + time1.get(Calendar.SECOND) + "초");
		System.out.println("time2 :"+time2.get(Calendar.HOUR_OF_DAY)+"시 " +
		time2.get(Calendar.MINUTE) +"분 " + time2.get(Calendar.SECOND) + "초");

		long difference = Math.abs(time2.getTimeInMillis() - time1.getTimeInMillis())/1000;
		System.out.println("time1과 time2의 차이는 "+ difference +"초 입니다.");

		String tmp = "";
		for(int i=0; i < TIME_UNIT.length;i++) { 
			  tmp += difference/TIME_UNIT[i]+ TIME_UNIT_NAME[i]; 
			  difference %= TIME_UNIT[i];
		} 

		System.out.println("시분초로 변환하면 " + tmp + "입니다.");
	}
}


Result

time1 :10시 20분 30초
time2 :20시 30분 10초
time1과 time2의 차이는 36580초 입니다.
시분초로 변환하면 10시간 9분 40초입니다.


두 개의 시간 데이터로부터 초 단위로 차이를 구한 다음, 시분초로 바꿔 출력하는 예제입니다. 가장 큰 단위인 시간 단위(3600초)로 나누고 남은 나머지를 다시 분 단위(60초)로 나누면 그 나머지는 초 단위의 값이 됩니다.






출처 : 자바의 정석