回答編集履歴

3

不要部分削除

2019/07/07 17:42

投稿

jimbe
jimbe

スコア12729

test CHANGED
@@ -1,4 +1,4 @@
1
- おそらく YYYY は java.text.SimpleDateFormat で 'YYYY' を使って表示したものと推測します.
1
+ おそらく java.text.SimpleDateFormat で 'YYYY' を使って表示したものと推測します.
2
2
 
3
3
  ですが, ```YYYY.format(calDownerYYYY11.getTime());``` で GregorianCalendar を Date に変換した後に format しているため, GregorianCalendar に設定した setFirstDayOfWeek(Calendar.SUNDAY); 等は SimpleDateFormat に渡らず, 内部で再度 Calendar(GregorianCalendar?) に変換され, デフォルトの値によって 1998年の第1週は1997年12月29日~となっているものと思います.
4
4
 

2

ドキュメントリンク追加

2019/07/07 17:42

投稿

jimbe
jimbe

スコア12729

test CHANGED
@@ -5,3 +5,13 @@
5
5
 
6
6
 
7
7
  試しに GregorianCalendar の getWeekYear メソッドの値を表示してみれば, 両方とも 1997 となっているのが確認できます.
8
+
9
+
10
+
11
+ [GregorianCalendar (Java Platform SE 8)](https://docs.oracle.com/javase/jp/8/docs/api/java/util/GregorianCalendar.html)
12
+
13
+ > **年の何週目かを表す値および暦週の基準年**
14
+
15
+ (略)
16
+
17
+ たとえば、1998年1月1日は木曜日です。getFirstDayOfWeek()がMONDAYでgetMinimalDaysInFirstWeek()が4 (ISO 8601規格に準拠した設定)の場合、1998年の第1週は1997年12月29日に始まり1998年1月4日で終わります。暦年が1997年の最後の3日については、暦週の基準年が1998になります。ただし、getFirstDayOfWeek()がSUNDAYの場合、1998年の第1週は1998年1月4日に始まり1998年1月10日に終わります。1998年の最初の3日間は1997年の第53週に入り、それらの日の暦週の基準年は1997です。

1

表現修正

2019/07/07 17:39

投稿

jimbe
jimbe

スコア12729

test CHANGED
@@ -1,6 +1,6 @@
1
1
  おそらく YYYY は java.text.SimpleDateFormat で 'YYYY' を使って表示したものと推測します.
2
2
 
3
- ですが, ```YYYY.format(calDownerYYYY11.getTime());``` で GregorianCalendar を Date に変換した後に format しているため, GregorianCalendar に設定した setFirstDayOfWeek(Calendar.SUNDAY); 等は SimpleDateFormat に渡らず, 内部で再度 GregorianCalendar に変換され, デフォルトの値によって 1998年の第1週は1997年12月29日~となっているものと思います.
3
+ ですが, ```YYYY.format(calDownerYYYY11.getTime());``` で GregorianCalendar を Date に変換した後に format しているため, GregorianCalendar に設定した setFirstDayOfWeek(Calendar.SUNDAY); 等は SimpleDateFormat に渡らず, 内部で再度 Calendar(GregorianCalendar?) に変換され, デフォルトの値によって 1998年の第1週は1997年12月29日~となっているものと思います.
4
4
 
5
5
 
6
6