質問するログイン新規登録

質問編集履歴

5

2019/07/09 03:15

投稿

key_FoolyCooly
key_FoolyCooly

スコア19

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

コメントが間違えてたため修正

2019/07/09 03:15

投稿

key_FoolyCooly
key_FoolyCooly

スコア19

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

コードが質問したい事と異なっていた修正

2019/07/08 14:56

投稿

key_FoolyCooly
key_FoolyCooly

スコア19

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

コードが一部抜けてたので追記

2019/07/07 20:15

投稿

key_FoolyCooly
key_FoolyCooly

スコア19

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

記載の途中で質問したため、情報を追加

2019/07/07 19:49

投稿

key_FoolyCooly
key_FoolyCooly

スコア19

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
- これと同様に、私の想定では、consoleの`日付:1998年01月01日`は`日付:1997年01月01日`と表示されるはずです。
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