Java の Calendar に問題があります。カレンダーに週を追加すると、正しく機能しない場合があります。例えば。week_of_yer を 3 に設定してから、-3 週間を追加します ;) ほとんどの場合はうまく機能しますが、2010 年、2016 年などでは機能しません (この年は 53 週の年です)。JDKのエラーのようです。週番号が52のときに年が変わると思います:D いくつかの簡単なコード:
Calendar calendar = new GregorianCalendar();
calendar.set(Calendar.YEAR, 2016);
calendar.set(Calendar.WEEK_OF_YEAR, 3);
calendar.add(Calendar.WEEK_OF_YEAR, -3);
System.out.println("rolled week: " + calendar.get(Calendar.WEEK_OF_YEAR) + " - " + calendar.get(Calendar.YEAR));
このコードの結果は次のとおりです:週をロールバック: 53 - 2016 :D
他のすべての場合は 53 - 2015 である必要があり、正常に機能します。
誰かが同様の問題を抱えていますか?