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

質問編集履歴

2

コードの変更しました。

2016/06/24 13:56

投稿

sobue
sobue

スコア331

title CHANGED
File without changes
body CHANGED
@@ -13,29 +13,35 @@
13
13
  どうしても処理が難読化してしまうためスマートな方法はありますでしょうか?
14
14
 
15
15
  ```java
16
+ import java.util.ArrayList;
16
17
  import java.util.Calendar;
17
18
 
18
19
  public class Test3 {
19
20
 
20
21
  public static void main(String[] args) {
21
22
  // TODO 自動生成されたメソッド・スタブ
22
-
23
+
23
24
  String fromym = "201501";
24
25
  String toym = "201601";
25
-
26
+ ArrayList<String> yms = new ArrayList<String>(10);
26
27
  Calendar calendar = Calendar.getInstance();
27
- calendar.set(Integer.valueOf(fromym.substring(0,4)), Integer.valueOf(fromym.substring(4)), 1);
28
+ calendar.set(Integer.valueOf(fromym.substring(0, 4)), Integer.valueOf(fromym.substring(4)) - 1, 1);
28
-
29
+
29
- //最初の年月の確認
30
+ // 最初の年月の確認
31
+ System.out.println(String.valueOf(calendar.get(Calendar.YEAR))
30
- System.out.println(String.valueOf(calendar.get(Calendar.YEAR)) + String.format("%02d", (calendar.get(Calendar.MONTH))));
32
+ + String.format("%02d", (calendar.get(Calendar.MONTH) + 1)));
33
+
31
-
34
+ while (!toym.equals(String.valueOf(calendar.get(Calendar.YEAR))
32
- while (!toym.equals(String.valueOf(calendar.get(Calendar.YEAR)) + String.format("%02d", (calendar.get(Calendar.MONTH))))) {
35
+ + String.format("%02d", (calendar.get(Calendar.MONTH) + 1)))) {
33
- //一月増やす
36
+ // 一月増やす
34
37
  calendar.add(Calendar.MONTH, 1);
38
+ yms.add(String.valueOf(calendar.get(Calendar.YEAR))
39
+ + String.format("%02d", (calendar.get(Calendar.MONTH) + 1)));
35
40
  }
36
- //最後の年月の確認
41
+ // 出力して確認
42
+ for (String ym : yms) {
37
- System.out.println(String.valueOf(calendar.get(Calendar.YEAR)) + String.format("%02d", (calendar.get(Calendar.MONTH))));
43
+ System.out.println(ym);
38
-
44
+ }
39
45
  }
40
46
 
41
47
  }

1

コードの追加しました。

2016/06/24 13:56

投稿

sobue
sobue

スコア331

title CHANGED
File without changes
body CHANGED
@@ -10,4 +10,36 @@
10
10
  2016/01と
11
11
  出力したいのですが
12
12
  カレンダークラスを使用してListを使う方法はわかりますが
13
- どうしても処理が複雑化してしまうためスマートな方法はありますでしょうか?
13
+ どうしても処理が難読化してしまうためスマートな方法はありますでしょうか?
14
+
15
+ ```java
16
+ import java.util.Calendar;
17
+
18
+ public class Test3 {
19
+
20
+ public static void main(String[] args) {
21
+ // TODO 自動生成されたメソッド・スタブ
22
+
23
+ String fromym = "201501";
24
+ String toym = "201601";
25
+
26
+ Calendar calendar = Calendar.getInstance();
27
+ calendar.set(Integer.valueOf(fromym.substring(0,4)), Integer.valueOf(fromym.substring(4)), 1);
28
+
29
+ //最初の年月の確認
30
+ System.out.println(String.valueOf(calendar.get(Calendar.YEAR)) + String.format("%02d", (calendar.get(Calendar.MONTH))));
31
+
32
+ while (!toym.equals(String.valueOf(calendar.get(Calendar.YEAR)) + String.format("%02d", (calendar.get(Calendar.MONTH))))) {
33
+ //一月増やす
34
+ calendar.add(Calendar.MONTH, 1);
35
+ }
36
+ //最後の年月の確認
37
+ System.out.println(String.valueOf(calendar.get(Calendar.YEAR)) + String.format("%02d", (calendar.get(Calendar.MONTH))));
38
+
39
+ }
40
+
41
+ }
42
+
43
+ ```
44
+
45
+ このようになり、かなり分かりづらくなってしまうのでもう少しわかりやすくしたいのです。