3
다음 두 경우에 대한 기간 결과 (은 2016 년 2 월 28 일부터 29 일까지 2017 년 3 월 1 일부터까지 시작 함)는 동일합니다.Joda-Time : 기간 계산의 윤년에 이상한 동작
이 이상한 동작을 설명해 주시겠습니까?
사례 1 : 2,016 이월 28 2017 삼월 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 : 2,016 이월 29 2017 삼월 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 period)]의 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) –