2011年など、特定の年の毎日の1時間ごとにコマンドラインで取得/印刷する必要がありますが、Javaでコーディングするのに苦労しています。
誰かがこの問題をコーディングしたことがありますか?
これはうまくいくはずです:
final DateFormat df = DateFormat.getDateTimeInstance();
final Calendar c = Calendar.getInstance();
c.clear();
for (c.set(2011, Calendar.JANUARY, 1, 0, 0, 0);
c.get(Calendar.YEAR) == 2011;
c.add(Calendar.HOUR_OF_DAY, 1))
System.out.println(df.format(c.getTime()));
たとえば、出力の微妙な点に注意してください。
Oct 30, 2011 12:00:00 AM
Oct 30, 2011 1:00:00 AM
Oct 30, 2011 2:00:00 AM
Oct 30, 2011 2:00:00 AM
Oct 30, 2011 3:00:00 AM
joda-timeライブラリを使用すると、これを簡単に解決できます。
org.joda.time.Hours.hoursBetween(
new org.joda.time.DateMidnight(2012,1,1).toLocalDate(),
new org.joda.time.DateMidnight(2013,1,1).toLocalDate()
).getHours();
カレンダーを使用し、必要なパラメーターで好きなように「引用符で囲まれた文字列」を管理するために毎日ループします。
各行の日付 (通常はコンマで区切ります) をファイルに入れることができます