본문 바로가기
Language/Java

[JAVA] 날짜 계산 (날짜 더하기, 날짜 빼기)

by 애기 개발자 2022. 7. 15.
반응형

일하다가 만든 날짜 더하기 빼기 메서드이다.

 

public String cal_date(String cal_day, String sign)
{
	String today = util_dateinfo.get_today_ymdhis(); //오늘날짜 받기
	String day = "";

	try{
		SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
		Date date = format.parse(today);

		Calendar cal = Calendar.getInstance();
		cal.setTime(date);

		int i_day = Integer.parseInt(cal_day);

		if("plus".equals(sign))
			cal.add(Calendar.DATE, i_day); //날짜 더하기
		else if("minus".equals(sign))
			cal.add(Calendar.DATE, (i_day*-1)); //날짜 빼기

		day = format.format(cal.getTime());
	} catch( Exception e) {
		e.printStackTrace();
	}

	return day;
}

public static void main(String[] args) {

	String ModStartDate = cal_date("730", "plus");

    String ModEndDate = cal_date("710", "plus");

    String SecureExprStartDate = cal_date("20", "minus");

    System.out.println("ModStartDate - " + ModStartDate);
    System.out.println("ModEndDate - " + ModEndDate);
    System.out.println("SecureExprStartDate - " + SecureExprStartDate);
}

cal_date({계산할 날짜}, {더할지 뺄지})

를 사용해서 넘겨준다

 

 

위의 예시는 방금 테스트한 기준

 

 

SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");

내가 필요한 값은 년월일시분초의 14자리 형식의 시간 타입이라서 yyyyMMddHHmmss로 설정하고

 

Date date = format.parse(today);

Calendar cal = Calendar.getInstance();
cal.setTime(date);

문자열을 Date 형식으로 그리고 Calendar 형식으로 바꿔준다.

 

int i_day = Integer.parseInt(cal_day);

파라미터로 받은 String 형태의 cal_day 값을 int 형태의 값으로 변환한다.

 

변환하는 이유는

 

날짜를 계산하기 위해 사용하는 cal.add( ) 의 파라미터 조건이 int 형식이기 때문이다. (혹은 날짜)

 

if("plus".equals(sign))
    cal.add(Calendar.DATE, i_day);
else if("minus".equals(sign))
    cal.add(Calendar.DATE, (i_day*-1));

day = format.format(cal.getTime());

이후 plus면 그냥, minus 면 -1을 곱해서 cal.add( )에 넣어준다.

 

이후 다시 계산된 값을 String 형태로 변환하여 리턴.

반응형

댓글