请问为什么getActualMaximum不对?
请问为什么getActualMaximum不对?
public static void main ( String args[] )
{
System.out.println(GetDayCountFromYearMonth(2007,2));
}
static int GetDayCountFromYearMonth(int nYear, int nMonth)
{
Calendar c= Calendar.getInstance();
c.set(Calendar.YEAR, nYear);
c.set(Calendar.MONTH, nMonth -1);
return c.getActualMaximum(Calendar.DAY_OF_MONTH);
}
想用GetDayCountFromYearMonth得到指定月分的最大天数,但是2007年 2月好像总是31天?
------解决方案-------------------- Calendar c= Calendar.getInstance();
c.set(Calendar.YEAR, nYear);
c.set(Calendar.MONTH, nMonth -1);
//这个时候由于2月没有30日,而今天是30日,所以c已经自动跳转到了3月了,所以你要在set Month之前调用一次c.set(Calendar.DATE, 1);才可以保证不出现这个问题
return c.getActualMaximum(Calendar.DAY_OF_MONTH);
------解决方案--------------------哈哈,测试平年2月的天数不能在 29、30、31 这几天测试,真不巧啊,不过也好发现问题了。