캘린더 날짜 계산 - kaellindeo naljja gyesan

자바에서 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()));

결과

반응형

SimpleDateFormat, Calendar 클래스를 이용하여 특정 날짜에서 더하거나 뺀 날짜를 구할 수 있다.

import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateAdd { public static void main(String[] args) throws Exception{ String date = "20200801"; //1년 후 날짜 String addYear = AddDate(date, 1, 0, 0); //1달 후 날짜 String addMonth = AddDate(date, 0, 1, 0); //1일 후 날짜 String addDay = AddDate(date, 0, 0, 1); System.out.println(addYear); //20210801 System.out.println(addMonth); //20200901 System.out.println(addDay); //20200802 } private static String AddDate(String strDate, int year, int month, int day) throws Exception { SimpleDateFormat dtFormat = new SimpleDateFormat("yyyyMMdd"); Calendar cal = Calendar.getInstance(); Date dt = dtFormat.parse(strDate); cal.setTime(dt); cal.add(Calendar.YEAR, year); cal.add(Calendar.MONTH, month); cal.add(Calendar.DATE, day); return dtFormat.format(cal.getTime()); } }

 

위의 예제와 같이 Calendar 객체의 add() 메서드를 사용하면 원하는 날짜를 계산할 수 있다.

만약 특정일 기준으로 원하는 날짜만큼 빼려면 원하는 만큼의 년, 월, 일에 -(마이너스)를 붙여 add 메서드 파라미터에 세팅한다.

 

//year 년 전 cal.add(Calendar.YEAR, -year); //month 월 전 cal.add(Calendar.MONTH, -month); //month 일 전 cal.add(Calendar.DATE, -day);

 

어제 날짜 구하기(일 년 전, 한 달 전)

//위의 메소드에 적용하면 다음과 같이 파라메터를 세팅하면된다. //일년 전 AddDate(date, -1, 0, 0); //한달 전 AddDate(date, 0, -1, 0); //하루 전 AddDate(date, 0, 0, -1);

 

 

공유하기

게시글 관리

구독하기코딩 시그널

저작자표시

'개발언어 > JAVA' 카테고리의 다른 글

[JAVA] 자바 날짜 포맷 변경 방법(SimpleDateFormat) yyyyMMdd  (1)2020.08.06[JAVA] 람다식(Lambda Expressions)이란? 사용방법 & 장단점  (0)2020.08.04[JAVA] 제네릭(Generic)이란? 제네릭 사용 방법과 예제 정리  (0)2020.08.01[JAVA] ArrayList를 이용하여 Stack, Queue 구현하기  (1)2020.03.17[JAVA]자바 변수란 무엇인가?  (0)2020.03.12

�׷���, ���Ϻһ��Կ�Ģ�� ������� �ʰ� ���Ϻ��� ���ԵǴ� ��쿡��, ���ϻ��Թ�ư�� ��� �Է��Ͻø� �˴ϴ�. (���� 0�ú��� �����ϴ� ���, ���ɰ��, ���ڰ�� ��)

��. ������/������ �Է� �� �������

����ϰ��� �ϴ� �����ϰ� �������� �Է� �� ������⸦ Ŭ���ϸ� ������� ���õ˴ϴ�.
������� �����ϰ� ó������ ���ư����� ���� ��ư�� Ŭ���ϸ� �˴ϴ�.

��. ���ȭ��

��������� �� �Է��� ��¥�� �������� ��, ��, ��, ������ ȯ���Ͽ� �� ������� �����մϴ�.
��, ��, ���� �ι� ������ ���� ������ ������ ����˴ϴ�.

�� ���� : �Ⱓ�� �޷����� ȯ��

��. ���ϻ���/�һ��� ����

�Ⱓ �������� ��꿡 ���� �������� �����ϴ� ���Դϴ�. ��κ��� ��� ���� �һ����� ��Ģ�� ����˴ϴ�.

�׷���, ���Ϻһ��Կ�Ģ�� ������� �ʰ� ���Ϻ��� ���ԵǴ� ��쿡��, ���ϻ��Թ�ư�� ��� �Է��Ͻø� �˴ϴ�. (���� 0�ú��� �����ϴ� ���, ���ɰ��, ���ڰ�� ��)

��. �Ⱓ �Է� �� �������

���� �Ⱓ���� ��, ��, ��, �� ���� �����Ͽ� �Է��� ��, �Ⱓ �������� �Է��մϴ�.

����(��ߩ) ��ư�� Ŭ���� �巡�� ���Ͽ� �� �������� ǥ�õǸ�, ����(�ߩ)��ư Ŭ���� ���ŷ� �ұ޵� ��¥�� ǥ�õ˴ϴ�.

������� �����ϰ� ó������ ���ư����� ���� ��ư�� Ŭ���ϸ� �˴ϴ�.

�� ���ñ��� : �ι� ��6�� �Ⱓ

��155��(������ �������)
�Ⱓ�� ����� ����, ���ǻ��� ó�� �Ǵ� ���������� �ٸ� ���� �ٰ� ������ ������ ������ ���Ѵ�.

��156��(�Ⱓ�� �����)
�Ⱓ�� ��, ��, �ʷ� ���� ������ ��÷κ��� ����Ѵ�.

��157��(�Ⱓ�� �����)
�Ⱓ�� ��, ��, �� �Ǵ� ������ ���� ������ �Ⱓ�� ������ �������� �ƴ��Ѵ�. �׷��� �� �Ⱓ�� ���� ���÷κ��� �����ϴ� ������ �׷����� �ƴ��ϴ�.

��158��(������ �����)
���ɰ�꿡�� ������� �����Ѵ�.

��159��(�Ⱓ�� ������)
�Ⱓ�� ��, ��, �� �Ǵ� ������ ���� ������ �Ⱓ������ ����� �Ⱓ�� �����Ѵ�.

��160��(���� ���� ���)
��Ⱓ�� ��, �� �Ǵ� ������ ���� ������ ���� ���Ͽ� ����Ѵ�.

����, �� �Ǵ� ���� ó�����κ��� �Ⱓ�� ������� �ƴ��ϴ� ������ ������ ��, �� �Ǵ� ������ �� ����Ͽ� �ش��� ���� ���Ϸ� �Ⱓ�� �����Ѵ�.

몇주 계산?

몇 주차인지 세는 기준은 뭔가요? 몇 주차인지 세는 기준은 국제기준이 있습니다. 날짜와 시간에 대한 국제 표준 ISO-8601이 있는데요. 이에 따르면 매 주의 시작일은 월요일이며, 매월의 첫 주는 과반수(4일 이상)가 포함된 주를 기준으로 합니다.

로부터 몇일?

2 '로부터'는 격 조사 '로07'와 보조사 '부터'가 결합한 말로서 어떤 행동의 출발점이나 비롯되는 대상임을 나타내는 격 조사입니다. 따라서 '로부터'도 '1월 1일'이 포함됩니다.

몇달 계산?

예를 들어, 2021년 4월 16일에 태어나고 오늘이 2021년 4월 17일 이라면, 아기 개월 수는 0개월 2일입니다. 출생일을 포함하지 않고 계산하려면 기준일 칸 아래에서 '출생일 불포함'을 선택하세요.

백일 어떻게 계산?

기준일을 아이의 생일이라고 생각하면 기준일로부터 100일이 아이 백일입니다. 아이 백일도 기준일을 포함하여 계산합니다.

Toplist

최신 우편물

태그