ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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 */
Designed by Tistory.