質問編集履歴
5
title
CHANGED
File without changes
|
body
CHANGED
@@ -37,7 +37,7 @@
|
|
37
37
|
```
|
38
38
|
直観的にはconsoleの`日付:1998年12月31日`は`日付:1997年12月31日`と表示したいところです。
|
39
39
|
しかし、GregorianCalendar的には`日付:1997年12月28日`から1998年なため、console通り表示されます。
|
40
|
-
これは
|
40
|
+
これはJavaの仕様通りであり、私の期待通りです。
|
41
41
|
|
42
42
|
これと同様に、私の期待では、consoleの`日付:1998年01月01日`は`日付:1997年01月01日`と表示されるはずです。
|
43
43
|
なぜなら、GregorianCalendar的には`日付:1998年01月01日`はまだ1997年なはずだからです。
|
4
コメントが間違えてたため修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -6,12 +6,13 @@
|
|
6
6
|
// YYYY表記
|
7
7
|
SimpleDateFormat YYYY = new SimpleDateFormat("YYYY年MM月dd日 E曜日");
|
8
8
|
|
9
|
-
// 年が繰り
|
9
|
+
// 年が繰り上がる場合
|
10
10
|
Calendar calDownerYYYY11 = new GregorianCalendar();
|
11
11
|
calDownerYYYY11.set(1997, 11, 31);
|
12
12
|
String dateDownerYYYY11 = YYYY.format(calDownerYYYY11.getTime());
|
13
13
|
int weekOfYearDownerYYYY11 = calDownerYYYY11.get(Calendar.WEEK_OF_YEAR);
|
14
14
|
|
15
|
+
// 年が繰り下がる場合
|
15
16
|
Calendar calDownerYYYY01 = new GregorianCalendar();
|
16
17
|
calDownerYYYY01.setFirstDayOfWeek(Calendar.SUNDAY);
|
17
18
|
calDownerYYYY01.setMinimalDaysInFirstWeek(4);
|
3
コードが質問したい事と異なっていた修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -8,8 +8,6 @@
|
|
8
8
|
|
9
9
|
// 年が繰り下がる場合
|
10
10
|
Calendar calDownerYYYY11 = new GregorianCalendar();
|
11
|
-
calDownerYYYY11.setFirstDayOfWeek(Calendar.SUNDAY);
|
12
|
-
calDownerYYYY11.setMinimalDaysInFirstWeek(4);
|
13
11
|
calDownerYYYY11.set(1997, 11, 31);
|
14
12
|
String dateDownerYYYY11 = YYYY.format(calDownerYYYY11.getTime());
|
15
13
|
int weekOfYearDownerYYYY11 = calDownerYYYY11.get(Calendar.WEEK_OF_YEAR);
|
@@ -17,7 +15,6 @@
|
|
17
15
|
Calendar calDownerYYYY01 = new GregorianCalendar();
|
18
16
|
calDownerYYYY01.setFirstDayOfWeek(Calendar.SUNDAY);
|
19
17
|
calDownerYYYY01.setMinimalDaysInFirstWeek(4);
|
20
|
-
YYYY.format(calDownerYYYY01.getTime());
|
21
18
|
calDownerYYYY01.set(1998, 0, 1);
|
22
19
|
String dateDownerYYYY01 = YYYY.format(calDownerYYYY01.getTime());
|
23
20
|
int weekOfYearDownerYYYY01 = calDownerYYYY01.get(Calendar.WEEK_OF_YEAR);
|
2
コードが一部抜けてたので追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,6 +3,9 @@
|
|
3
3
|
|
4
4
|
### 該当のソースコード
|
5
5
|
```Java
|
6
|
+
// YYYY表記
|
7
|
+
SimpleDateFormat YYYY = new SimpleDateFormat("YYYY年MM月dd日 E曜日");
|
8
|
+
|
6
9
|
// 年が繰り下がる場合
|
7
10
|
Calendar calDownerYYYY11 = new GregorianCalendar();
|
8
11
|
calDownerYYYY11.setFirstDayOfWeek(Calendar.SUNDAY);
|
1
記載の途中で質問したため、情報を追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
# 実現したいこと
|
2
|
-
GregorianCalendarが暦週の基準年にそって繰り下がるのを確認したい。
|
2
|
+
JavaのGregorianCalendarが暦週の基準年にそって繰り下がるのを確認したい。
|
3
3
|
|
4
4
|
### 該当のソースコード
|
5
5
|
```Java
|
6
|
-
// 年が繰り下がる場合
|
6
|
+
// 年が繰り下がる場合
|
7
7
|
Calendar calDownerYYYY11 = new GregorianCalendar();
|
8
8
|
calDownerYYYY11.setFirstDayOfWeek(Calendar.SUNDAY);
|
9
9
|
calDownerYYYY11.setMinimalDaysInFirstWeek(4);
|
@@ -36,10 +36,17 @@
|
|
36
36
|
```
|
37
37
|
直観的にはconsoleの`日付:1998年12月31日`は`日付:1997年12月31日`と表示したいところです。
|
38
38
|
しかし、GregorianCalendar的には`日付:1997年12月28日`から1998年なため、console通り表示されます。
|
39
|
+
これは私の仕様通りであり、私の期待通りです。
|
39
40
|
|
40
|
-
これと同様に、私の
|
41
|
+
これと同様に、私の期待では、consoleの`日付:1998年01月01日`は`日付:1997年01月01日`と表示されるはずです。
|
41
|
-
なぜなら、GregorianCalendar的には`日付:1998年01月01日`はまだ1997年な。
|
42
|
+
なぜなら、GregorianCalendar的には`日付:1998年01月01日`はまだ1997年なはずだからです。
|
43
|
+
しかし、これは私の期待通りにはなりません。
|
42
44
|
|
45
|
+
私の期待は間違っていますか?
|
46
|
+
また、暦週の基準年にそって期待通りに繰り下がらせたい場合、どのようにすれば良いですか?
|
47
|
+
|
43
48
|
### 補足情報(環境)
|
44
|
-
|
49
|
+
- 言語
|
50
|
+
Java8
|
51
|
+
- 開発環境
|
45
|
-
|
52
|
+
Spring Tool Suite 4 Version: 4.2.2.RELEASE
|