0

ある日付をjodaTimeと比較しようとします。週と年を使用して、日付を比較します。

DateMidnight endDate01 = new DateMidnight().withYear(2012).withWeekyear(37);
DateMidnight endDate02 = new DateMidnight().withYear(2012).withWeekyear(38);


endDate01.isBefore(endDate02); //return false

endDate01がendDate02よりも大きいように見える理由がわかりません。

多分バグ?

DateMidnight endDate01 = new DateMidnight();

endDate01.withYearOfEra(o1.getEndYearPeriod());
endDate01.withWeekOfWeekyear(o1.getEndWeekPeriod());

System.out.println(o1.getEndWeekPeriod() + " " + o1.getEndYearPeriod());
System.out.println(endDate01.getWeekOfWeekyear() + " " + endDate01.getYearOfEra());

私は得る

37 2012

2012年16月

同じ結果が得られるはずですよね?

4

3 に答える 3

1

これらの両方のコードは正常に機能します

DateTime dt = new DateTime(); 
dt = dt.withWeekOfWeekyear(29); 
dt = dt.withWeekyear(2011);

DateMidnight dt2 = new DateMidnight().withWeekOfWeekyear(29).withYear(2011);
于 2012-04-21T11:16:00.670 に答える
0

withWeekyearと同じではありませんwithWeekOfWeekyear。代わりに何が行われるかは100%わかりません。 withWeekyear2012年の第37週を意味する場合は、代わりに使用する必要があると思いますwithWeekOfWeekyear

于 2012-04-20T20:10:15.690 に答える
0
DateTime firstDate = new DateTime();
firstDate.withWeekyear(2012) /* represents the 2012 with number of weeks in it (I thing the algorith is the difference between first week in 1970) */
firstDate.withWeekOfWeekyear(29) /* now you have the 29th week of 2012 */
firstDate.withDayOfWeek(1) /* now you have 29th week of 2012 and Monday */

今、あなたは日付を設定します!このように2番目を設定し、それらを比較します。

于 2012-04-21T11:28:31.303 に答える