日付の週番号を取得する(水曜日の週開始)

マヘンドラ:
LocalDate initial = LocalDate.now();
DayOfWeek dayOfWeek = DayOfWeek.WEDNESDAY;
WeekFields weekFields = WeekFields.of(dayOfWeek, 1);
int weekNo = date.get(weekFields.weekOfWeekBasedYear());
System.out.println("Week No"+weekNo);

私は、日付2018年7月29日のために上記のコードを使用しています。私は週にノー30期待して、私は31を取得します。

私は30の結果を得るためにここに欠けているのですか?

トマシュLinkowski:

あなたがに応じて出力を予想した場合、ISO-8601現在の週がある週30、あなたはこれに従う必要があるでしょう:

ISO-8601規格に準拠した週数は、週は月曜日から始まります。年の最初の週は、その年の最初の木曜日(=「第4日の週」)を含んで週です。

これはによって実装されますWeekFields.ISO

代わり場合は、あなたが開始する週たいWEDNESDAY、あなただけ変更する必要があるminimalDaysInFirstWeekから14(=「最初の4日間の週」):

LocalDate date = LocalDate.now();
WeekFields weekFields = WeekFields.of(DayOfWeek.WEDNESDAY, 4);
int weekNo = date.get(weekFields.weekOfWeekBasedYear());
System.out.println("Week No " + weekNo);

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=189665&siteId=1