为什么calendar.getActualMaximum(Calendar.DAY_OF_MONTH)返回31而不是30?

时间:2012-12-01 12:26:12

标签: java

为什么我得到31而不是3?现在十二月,也就是11月30日之前。

Calendar calendarPreviousMonth = Calendar.getInstance();
        calendarPreviousMonth.add(Calendar.MONTH, calendarCurrent.get(Calendar.MONTH) - 1);
        System.out.println("Amount of days in month " + calendarPreviousMonth.getActualMaximum(Calendar.DAY_OF_MONTH));

谢谢!

2 个答案:

答案 0 :(得分:6)

上个月要查找的代码应该如下:

calendarPreviousMonth.add(Calendar.MONTH, -1);

答案 1 :(得分:0)

这是错误的:

calendarPreviousMonth.add(Calendar.MONTH, calendarCurrent.get(Calendar.MONTH)-1)

您要么将-1添加到月份,要么将其设置为calendarCurrent.get(Calendar.MONTH) - 1。不是都!试试这个:

calendarPreviousMonth.add(Calendar.MONTH, -1);

calendarPreviousMonth.set(Calendar.MONTH, calendarCurrent.get(Calendar.MONTH)-1)