프로그래밍 언어/자바 & 코틀린

[java] 두 날짜간 월 차이 구하기

희랍인 조르바 2018. 12. 10. 22:54
두 날짜간 월 차이 구하기

두 날짜간의 월 차이 구하기

자동으로 월차를 생성해주는 스케줄러를 구현 중이다. 두 날짜간의 월 차이를 알아내는 함수를 구현해야 했다. 예를 들어, 2018년 12월 1일에 스프링 스케줄러가 실행되면 2018년 7월 16일에 입사한 사람은 8월 1일부터 월차가 발생한다고 가정했을 때, 8월, 9월, 10월, 11월, 12월까지 총 5개의 월차가 발생해야 한다.


그래서 일(day)은 상관없이 월끼리만 계산해주면 된다. 아래는 구현한 함수다. 참 쉽죠잉? ㅎ

/**
* 두 날짜간의 월 차이 구하기
* */
private int getMonthsDifference(Date date1, Date date2){

        /* 해당년도에 12를 곱해서 총 개월수를 구하고 해당 월을 더 한다. */
	int month1 = date1.getYear() * 12 + date1.getMonth();
	int month2 = date2.getYear() * 12 + date2.getMonth();

	return month2 - month1;
}

/** 테스트 */
public static void main(String[] args){

	DateUtil dateUtil = new DateUtil();
	SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
  
	try{
	/** 2018년 9월 1일과 2018년 12월 5일의 차를 구하면
	  * 결과는 3이 나온다.
	  */
	    Date date1 = format.parse("20180901");
	    Date date2 = format.parse("20181205");	    System.out.println("두 날짜간 월 차이 :"
                               +dateUtil.getMonthsDifference(date1, date2));

	}catch (ParseException  e){
	    System.out.println(e);
	}

}

/** 결과값 : 3 */