JAVA/코딩

[JAVA] 날짜 계산하기(더하기, 빼기 등)

으악꿈 2021. 3. 22. 13:33
728x90

자바에서 java.util의 Calendar와 Date를 이용하여 날짜 계산하는 법을 알아보자

 

1. 현재 시간에 날짜 더하기, 빼기

Calendar cal1 = Calendar.getInstance();
cal1.add(Calendar.DATE, 6); // 일 계산
cal1.add(Calendar.MONTH, 4); // 월 연산
cal1.add(Calendar.DATE, -3); // 빼고 싶다면 음수 입력
		
Date date = new Date(cal1.getTimeInMillis());

System.out.println("현재시간 : " + new Date());
System.out.println("연산시간 : " + date);

결과 

 

2. 특정 시간에 연산

String date_str = "2021-03-01 11:11:11";
SimpleDateFormat transFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = transFormat.parse(date_str);

Calendar cal1 = Calendar.getInstance();
cal1.setTime(date); // 시간 설정
cal1.add(Calendar.YEAR, 2); // 년 연산
cal1.add(Calendar.MONTH, 4); // 월 연산
cal1.add(Calendar.DATE, 4); // 일 연산
cal1.add(Calendar.HOUR_OF_DAY , 4); // 시간 연산
cal1.add(Calendar.MINUTE, 5); // 분 연산
cal1.add(Calendar.SECOND, 12); // 초 연산
        
System.out.println("설정시간 : " + date);
System.out.println("연산시간 : " + new Date(cal1.getTimeInMillis()));

결과

 

3. 서로 다른 두개 시간 연산

String date_str1 = "2021-01-01 11:11:11";
String date_str2 = "2000-03-01 01:12:12";
SimpleDateFormat transFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date1 = transFormat.parse(date_str1);
Date date2 = transFormat.parse(date_str2);
		
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
// 시간 설정
cal1.setTime(date1); 
cal2.setTime(date2);
// 날짜 연산
cal1.add(Calendar.MONTH , cal2.get(Calendar.MONTH) + 1); // 월 더하기 - get(Calendar.MONTH)의 결과값이 0~11 이기 때문에 1을 더한다 
cal1.add(Calendar.DATE, cal2.get(Calendar.DATE)); // 일 더하기
cal1.add(Calendar.HOUR_OF_DAY, cal2.get(Calendar.HOUR_OF_DAY)); // 시간 더하기

System.out.println("date1 : " + date1);
System.out.println("date2 : " + date2);
System.out.println("연산시간 : " + new Date(cal1.getTimeInMillis()));

결과

 

728x90