これで、1日から最後の日までの期間の木曜日の数を数えるだけです。Java 8 Date & Time API を使用した 1 行のソリューションはありますか? 私はもう試した:
date.range(WeekFields.ISO.weekOfMonth()).getMaximum();
たとえば、2014 年 3 月 5 日の場合は 5 を返しますが、ISO8601 によると 3 月には 4 週間しかありません。
「特定の月に木曜日がいくつあるか」という質問をしましょう。
(ISO-8601 は、月単位で数週間のアプローチを記述していません。数年で数週間のアプローチのみを記述しています)。
このアプローチを使用して、木曜日の 5 回目の発生を見つけ、それが同じ月にあるかどうかを確認できます。
LocalDate date = ...
LocalDate fifthThu = date.with(TemporalAdjusters.dayOfWeekInMonth(5, THURSDAY));
int thursdays = (fifthThu.getMonth() == date.getMonth() ? 5 : 4);