calendar 를 이용하여 년도와 월을 가지고 해당월의 말일을 구하려 한다면
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 년도);
calendar.set(Calendar.MONTH, 월);
calendar.getActualMaximum(Calendar.DATE)를 이용해서 구할 수 있지만
2월달의 경우
calendar.set(Calendar.YEAR, 2008);
calendar.set(Calendar.MONTH, 2);
이렇게 구할 경우 자동적으로 월의 세팅값이 3월로 변경된다. 그래서
calendar.set(Calendar.YEAR, 2008);
calendar.set(Calendar.MONTH, 2);
calendar.set(Calendar.DATE, 1);

명시적으로 일의 값을 1로 세팅을 해놓으면 제되로 된 결과값이 나온다
이유는 date를 명시적으로 세팅하지 않을경우 jdk내부적으로 30일을 세팅하는것 같다 그래서 2월의 경우엔 자동적으로 3월로 넘어가는 것 같다 따라서 꼭 1일이 아니라 1~28일의 값중 어떤 값이라도 date를 세팅해 놓는다면 제대로 된 말일을 구할 수 있다.


+ Recent posts