2012-02-02 67 views
1

任何人都可以告訴我什麼是錯的下面的代碼?它增加了14天的對象就好了,但是當它增加14天到2月17日,它應該在2012年3月2日提出,但相反我得到了2012年2月31日。我已經嘗試添加2周,單日在一個for循環中,一切都會一直回到同一個日期。我花了兩天的時間搜索谷歌,儘可能多地閱讀,但沒有運氣。希望這裏的某個人能看到我缺少的東西。我有一個Java日曆對象添加14天的問題,不斷給我2012年2月31日

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

calNextPaymentDatecalEndGregorianCalendar對象和我做的痕跡,以確保日期將被填充的罰款。它會在日期中正確添加14天,但正如我所說,我不應該得到2012年2月31日的數據。

+3

...我想這可能是另一個例子「Java的日曆斷了,使用JODA。」 – 2012-02-02 21:53:47

回答

6

我的猜測是實際上您已將月份設置爲2,因此您在查看3月而不是2月。嘗試打印日期 - 我非常懷疑它會顯示2月31日。

不要忘了java.util.Calendar選擇使用基於0個月,因此對於二月你想一個月1

+1

哦,'java.util.Calendar'。任何人都可以站出來使用你? – 2012-02-02 22:43:37

+0

在'Calendar'類中使用常量而不是月份數:'Calendar.JANUARY','Calendar.FEBRUARY'等。 – Jesper 2012-02-02 22:43:54

+0

我認爲這可能也是如此,但是當我這樣做時: – Eric 2012-02-02 23:19:43

相關問題