Programming language/Java

[Java]날짜 계산하기

  • -
반응형

YYYYMMDD 형태로 문자열을 입력받았을 때, 날짜를 계산할 수 있는 코드입니다.

공통 함수로 뽑아 사용하면 좋을 듯 합니다.


package com.company;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;

public class DateTest {

	public static void main(String[] args) {
		Calendar cal = new GregorianCalendar(Locale.KOREA);		// 국제표준시(한국 기준)
		SimpleDateFormat transFormat = new SimpleDateFormat("yyyyMMdd");
		
		String dateValue = "20190101";								 
		Date to = null;
		
		try {
			to = transFormat.parse(dateValue);
			System.out.println("날짜 형태로 변환 >> " + to);
			
			cal.setTime(to);
			//cal.add(Calendar.YEAR, 1); 		
		    //cal.add(Calendar.MONTH, 1); 		
		    cal.add(Calendar.DAY_OF_YEAR, -1);  
		    //cal.add(Calendar.HOUR, 1); 		
		    
		    SimpleDateFormat fm = new SimpleDateFormat("yyyyMMdd"); 
		    String strDate = fm.format(cal.getTime());
		    
		    System.out.println("문자열 형태로 변환 >> " + strDate);
		} catch (ParseException e) {
			e.printStackTrace();
		}

	}
}

문자열의 날짜를 날짜 타입으로 변환 후 계산하였고, 다시 문자열로 변환하였습니다.

사용자 용도에 따라 -1 이 들어간 곳에 변수를 던지거나 값을 변경하여 쓰면 됩니다.

 

계산이 이루어지는 과정은 아래 코드를 통해 cal 인스턴스에 add함으로써 날짜 계산이 됩니다.

(Calendar.YEAR, 1) : 1년을 더한다.

(Calendar.MONTH , 1) : 한달을 더한다.

(Calendar.Day_OF_YEAR , 1) : 하루를 더한다.

(Calendar.Hour , 1) : 1시간을 더한다.


+ 피드백은 언제나 환영입니다 :)

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.