2013-05-30 106 views
0

我想添加1個月的日期,但問題是當我有一個日期2月28日,然後我再增加一個月,我結果到3月28日。它應該結束和我在4月30日開始的日期一樣,我應該在5月31日結束而不是5月30日。我嘗試使用Jodatime的plusMonths()和java.util.date的add(),但仍然是同樣的問題。添加1個月到2月28日應導致到3月31日

+0

因此,如果是2月2日,你添加一個月,那麼你會期望什麼日期? – maba

+0

即將進行2. – John

+0

將2013年2月28日提前至2013年3月31日,但2016年2月28日提前至2016年3月28日? –

回答

6

您的期望根本不對:它應該移動到下一個月的同一天(如果存在)。無論如何,代碼如何知道你想讓2月28日意味着「二月的最後一天」?它合法的意思是「二月二十八日」。假設你從1月28日開始,然後添加了一個月,然後再添加一個,你會期望什麼結果?

您可以通過與下一個月的第一天一起工作,然後再移動一天來實現您的需求。

+0

如果日期從1月28日開始,它應該在2月28日結束,然後下個月將是28月。但是如果日期從1月31日開始,下個月應該是28日,然後是31日。這可能嗎? – John

+2

您建議的邏輯必須是對象狀態完整歷史記錄的功能。這也將是非常具體的你的願望。當然,沒有公共圖書館迎合這一點。 –

相關問題