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
'JAVA > 코딩' 카테고리의 다른 글
[JAVA] Base64 인코딩시 개행문자 들어가는 현상 (0) | 2021.03.30 |
---|---|
[JAVA] mkdir mkdirs 차이 (1) | 2021.03.23 |
Spring @PostMapping @GetMapping @PatchMapping @PutMapping @DeleteMapping (0) | 2021.02.25 |
[JAVA]try catch(예외처리) 사용하기 (0) | 2021.02.18 |
Tiles 란? (0) | 2021.02.18 |