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