月末日の取得方法をjava.util.CalendarとJoda Timeの両方で取得するやり方の説明です。
ちなみにJoda Timeとはこちらのライブラリです。
http://joda-time.sourceforge.net/
java.util.Calendarの場合
getActualMaximum
を使います。
月末を取得
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2000);
cal.set(Calendar.MONTH, 1);
int lastDayOfMonth = cal.getActualMaximum(Calendar.DATE);
Joda Timeの場合
Joda TimeのLocalDateやDateTimeで取得する際には以下のようにwithMaximumValue()
を使って取得するのがお作法です。
月末を取得
// LocalDate
LocalDate date = new LocalDate();
LocalDate lastDayOfThisMonth = date.dayOfMonth().withMaximumValue();
// DateTimeでも同様
DateTime dateTime = new DateTime();
DateTime lastDayOfThisMonth2 = dateTime.dayOfMonth().withMaximumValue();