J2ME, Calendar.getActualMaximum(), - : , 1- , , 1- .
private int getDaysInMonth(int month, int year) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.MONTH, month);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.set(Calendar.YEAR, year);
cal.set(Calendar.HOUR, 0);
cal.set(Calendar.MINUTE, 0);
Date startDate = cal.getTime();
int nextMonth = (month == Calendar.DECEMBER) ? Calendar.JANUARY : month + 1;
cal.set(Calendar.MONTH, nextMonth);
if (month == Calendar.DECEMBER) {
cal.set(Calendar.YEAR, year + 1);
}
Date endDate = cal.getTime();
return (int)((endDate.getTime() - startDate.getTime()) / (24 * 60 * 60 * 1000));
}
, Calendar, Calendar.JANUARY. , 0, , 12 , . , , .
:
int d = getDaysInMonth(Calendar.DECEMBER, 2012);
d = getDaysInMonth(Calendar.FEBRUARY, 2012);
d = getDaysInMonth(Calendar.FEBRUARY, 2013);
d =
31
29
28
( ).