バジルボーク:
私たちは持っているDayOfWeek
標準で曜日を定義する列挙ISO 8601の順序を。
私が欲しいList
のための適切な中、これらのオブジェクトのをLocale
。
私たちは、簡単にロケールの週の最初の日を決定することができます。
Locale locale = Locale.CANADA_FRENCH ;
DayOfWeek firstDayOfWeek = WeekFields.of( locale ).getFirstDayOfWeek() ;
セットアップList
。
List< DayOfWeek > dows = new ArrayList<>( 7 ) ; // Set initial capacity to 7, for the seven days of the week.
dows.add( firstDayOfWeek ) ;
➥そのリストに週の他の六日間を追加するには、最も簡単な/最短/最もエレガントなアプローチは何ですか?
Kartik:
あなたは使用することができるplus
方法をDayOfWeek
。
日曜日から月曜日までの週の終わりの周りの計算ロール。
インクリメントと数字IntStream
とそのrange
方法(包括開始、排他的な終了)。
Locale locale = Locale.CANADA_FRENCH;
DayOfWeek firstDayOfWeek = WeekFields.of(locale).getFirstDayOfWeek();
List<DayOfWeek> dows = IntStream.range(0, 7)
.mapToObj(firstDayOfWeek::plus)
.collect(Collectors.toList());