我已经使用Joda-Time joda-time-2.3.jar与android应用进行天计算。我的代码是

Period Nextperiod = new Period(ddate, nextdt,PeriodType.yearMonthDay());


在此ddate和nextdt中是DateTime
两个日期都是输入类型,其格式为SimpleDateFormat,对于日差,我使用了Nextperiod.getDays()现在测试用例为
Case 1 Right
ddate=2014-06-01T00:00:00.000+05:30
nextdt =2015-04-11T00:00:00.000+05:30
Day: 10
Month: 10
year: 0

Case 2 Wrong ddate= 2014-05-28T00:00:00.000+05:30 nextdt=2015-03-12T00:00:00.000+05:30 Day: 12 Month: 9 year: 0

In case 2 it should be 14 and When I insert 29 may or 30 may the days are 12 same result. I don't know whats wrong with this date. I tested some more date and result are as per my expectation.Let me know my mistake.
Also tried,
Period Nextperiod = new Period(new LocalDate(Ddate), new LocalDate(Ddate),PeriodType.yearMonthDay());

提前致谢。

最佳答案

如果您尝试将开始日期(ddate)逐步增加9个月和12天,则可以看到案例2示例正确的原因。

将2014年9月28日加上9个月的结果会在2015年2月28日得出。这是2015年2月的最后一天,因此加上12天的收益率就是2015-03-12。

这也适用于开始日期为5月29日或5月30日的测试用例:这些日期与结束日期之间的时间段为9个月零12天。

10-07 18:41