将截至2月28日的1个月添加到3月31日

Joh*_*ohn 0 java calendar jodatime gregorian-calendar

我想在日期上加1个月,但问题是当我有2月28日的日期然后我再添加一个月,我的结果是3月28日.它应该在3月31日结束.当我开始4月的日期时30,我应该在5月31日而不是5月30日结束.我尝试使用Jodatime的plusMonths()和java.util.date的add()但仍然是同样的问题.

Mar*_*nik 7

你的期望是完全错误的:它应该在下个月的同一天移动,如果存在的话.无论如何,代码怎么知道你想要2月28日意味着"二月的最后一天"?它合法地意味着"二月28日".假设你从1月28日开始,然后又增加了一个月,然后再添加一个,你会期待什么结果?

您可以通过在下个月的第一天工作然后再搬回一天来实现您的需求.

  • 你建议的逻辑必须是对象状态的完整历史的函数.它也非常符合您的愿望.当然,没有公共图书馆可以满足这一要求. (2认同)