3
以下两种情况的期间结果(从2016年2月28日29日至2017年3月1日)彼此相同。Joda-Time:期间计算中的闰年的奇怪行为
请你帮忙解释一下这个奇怪的行为吗?
情况1:2016年02月28至2017年3月1日
Calendar start1 = Calendar.getInstance();
start1.set(2016, Calendar.FEBRUARY, 28, 0, 0, 0);
Calendar end1 = Calendar.getInstance();
end1.set(2017, Calendar.MARCH, 1, 0, 0, 0);
Interval i1 = new Interval(new DateTime(start1.getTime()), new DateTime(end1.getTime()))
System.out.println(i1.toPeriod());
结果:P1Y1D
情况2:2016年02月29至2017年3月1日
Calendar start2 = Calendar.getInstance();
start2.set(2016, Calendar.FEBRUARY, 29, 0, 0, 0);
Calendar end2 = Calendar.getInstance();
end2.set(2017, Calendar.MARCH, 1, 0, 0, 0);
Interval i2 = new Interval(new DateTime(start2.getTime()), new DateTime(end2.getTime()))
System.out.println(i2.toPeriod());
结果:P1Y1D
什么是'2016-02-28'加1年? '2017-02-28'。 ---什么是'2016-02-29'加1年? '2017-02-28'。 --- **同样的答案**,那么:什么是'2017-02-28'加1天? '2017-03-01'。 ---见['DateTime.plus(ReadablePeriod期)']的javadoc](http://joda-time.sourceforge.net/apidocs/org/joda/time/DateTime.html#plus(org.joda.time。 ReadablePeriod))。 – Andreas
可能的重复:[org.joda.time.Period尊重闰年?](http://stackoverflow.com/questions/34769873/does-org-joda-time-period-respect-leap-years) –