프로그래밍 언어/자바 & 코틀린
[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 */