いつもおせわになっております。
動的に取得できる年月があって
例2015/01~2016/01とあって
2015/01
2015/02
2015/03
.
.
.
2016/01と
出力したいのですが
カレンダークラスを使用してListを使う方法はわかりますが
どうしても処理が難読化してしまうためスマートな方法はありますでしょうか?
java
1import java.util.ArrayList; 2import java.util.Calendar; 3 4public class Test3 { 5 6 public static void main(String[] args) { 7 // TODO 自動生成されたメソッド・スタブ 8 9 String fromym = "201501"; 10 String toym = "201601"; 11 ArrayList<String> yms = new ArrayList<String>(10); 12 Calendar calendar = Calendar.getInstance(); 13 calendar.set(Integer.valueOf(fromym.substring(0, 4)), Integer.valueOf(fromym.substring(4)) - 1, 1); 14 15 // 最初の年月の確認 16 System.out.println(String.valueOf(calendar.get(Calendar.YEAR)) 17 + String.format("%02d", (calendar.get(Calendar.MONTH) + 1))); 18 19 while (!toym.equals(String.valueOf(calendar.get(Calendar.YEAR)) 20 + String.format("%02d", (calendar.get(Calendar.MONTH) + 1)))) { 21 // 一月増やす 22 calendar.add(Calendar.MONTH, 1); 23 yms.add(String.valueOf(calendar.get(Calendar.YEAR)) 24 + String.format("%02d", (calendar.get(Calendar.MONTH) + 1))); 25 } 26 // 出力して確認 27 for (String ym : yms) { 28 System.out.println(ym); 29 } 30 } 31 32} 33
このようになり、かなり分かりづらくなってしまうのでもう少しわかりやすくしたいのです。
回答6件
あなたの回答
tips
プレビュー