我在向Java日历对象添加14天时遇到问题,一直给我2012年2月31日

Eri*_*ric 1 java android

任何人都可以告诉我以下代码有什么问题吗?它增加了14天到对象就好了但是当它增加14天到2月17日它应该出现在今年的2012年3月2日,但我得到的是2012年2月31日.我试过添加2周,单日在一个for循环中,一切都会回到同一个日期.我花了两天时间搜索谷歌并尽可能多地阅读,但没有运气.希望有人在这里可以看到我失踪的东西.

while(calNextPaymentDate.before(calEnd))
{
   Dates.add(date);
   calNextPaymentDate.add(Calendar.DAY_OF_MONTH, 14);
   date = (GregorianCalendar) calNextPaymentDate.clone();
}
Run Code Online (Sandbox Code Playgroud)

calNextPaymentDatecalEndGregorianCalendar对象,我已经做了的痕迹,以确保日期将被填充的罚款.它正确地添加了14天的日期,但正如我所说,我不应该得到2012年2月31日的数据.

Jon*_*eet 6

我的猜测是,实际上你已经将月份设置为2,所以你看的是3月而不是2月.

尝试打印出日期 - 我非常怀疑它将在2月31日显示.

不要忘记java.util.Calendar选择使用0个月,所以2月你想要1个月.