'자바 날자 계산하기'에 해당되는 글 1건




안녕하세요. 제임스 입니다. 


이번에 포스팅 할 내용은 특정 날짜에 원하는 날 만큼 + / - 하는 방법입니다. 


오늘 부터 한달 후는 몇 일 일까요? 

연인과 사귄 날로 부터 100일째 되는 날이 언제일까요? 


이런것들을 구하는 방법들에 대해 알아 보겠습니다. 



■ 오늘로 부터 한달 후는 몇일 일까?


1
2
3
4
5
6
7
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
 
Calendar cal = Calendar.getInstance();
System.out.println("오늘 날짜: "+sdf.format(cal.getTime()));
        
cal.add(Calendar.MONTH, 1);
System.out.println("오늘로 부터 한달 후: "+sdf.format(cal.getTime()));
cs


Calendar 클래스에서 제공하는 add 라는 함수를 사용했습니다. 


결과는 아래와 같습니다.


오늘 날짜: 2018/01/10

오늘로 부터 한달 후: 2018/02/10



■ 연인과 1일차인 2018년 1월 1일로 부터 100일째는?

1
2
3
4
5
6
7
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
 
Calendar cal = new GregorianCalendar(2018, Calendar.JANUARY, 1);
System.out.println("연인과 1일차: "+sdf.format(cal.getTime()));
        
cal.add(Calendar.DAY_OF_MONTH, 100);
System.out.println("연인과 사귄지 100일째: "+sdf.format(cal.getTime()));
cs

달을 구할때와 같이 이번에도 Calendar 클래스의 add 함수를 사용 했습니다. 

단, 이번에는 Calendar.MONTH 대신 Calendar.DAY_OF_MONTH 에 100일을 더했습니다. 


결과는 아래와 같습니다. 


연인과 1일차: 2018/01/01

연인과 사귄지 100일째: 2018/04/11



■ 기준일로 부터 이전 날짜 구하기


위 두가지 예제는 앞으로 몇달 후 또는 몇일 후 를 구하는 방식이었습니다. 

반대로 지나간 날짜를 구하는 방법은 어떻게 될까요? 


아주 간단합니다. 

입력 값을 양수 값이 아닌 음수 값으로 넣어 주면 됩니다. 


두번째 예제 결과 값인 2018년 4월 11일로 부터 101일 전이 몇일 인지 구해 보겠습니다. 


1
2
3
4
5
6
7
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
 
Calendar cal = new GregorianCalendar(2018, Calendar.APRIL, 11);
System.out.println("기준일: "+sdf.format(cal.getTime()));
        
cal.add(Calendar.DAY_OF_MONTH, -101);
System.out.println("기준일로 부터 101전: "+sdf.format(cal.getTime()));
cs


add 함수를 사용 했지만 음수 값을 입력했습니다. 

결과는 아래와 같습니다. 


기준일: 2018/04/11

기준일로 부터 101전: 2017/12/31



■ 오늘로 부터 한달 열흘 후 날짜 구하기


이번에는 몇 일 또는 몇 달이 아닌 한달 + 10일 이라는 값을 구하려고 합니다. 

어떻게 하면 될까요? 

눈치 빠르신 분들은 벌써 답을 찾으셨을 것 같습니다. 


한달을 add 한 값에 다시 10일을 add 하면 되겠죠? 

코드는 아래와 같습니다. 


1
2
3
4
5
6
7
8
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
 
Calendar cal = Calendar.getInstance();
System.out.println("오늘 날짜: "+sdf.format(cal.getTime()));
        
cal.add(Calendar.MONTH, 1);
cal.add(Calendar.DAY_OF_MONTH, 10);
System.out.println("오늘로 부터 한달 열흘 후: "+sdf.format(cal.getTime()));
cs


결과 값은 아래와 같습니다. 


오늘 날짜: 2018/01/10

오늘로 부터 한달 열흘 후: 2018/02/20



위와 같은 방식으로 여러 조합을 이용하여 원하는 값을 쉽게 가져 올 수 있습니다. 


잘 이용 하시길 바랍니다 :)



 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D



블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,