Calendarクラスについて
java勉強中の初心者です。
現在、カレンダークラスの勉強をしています。
いろいろ試しているのですが、お聞きしたいこと
があります。
末日を取得するgetActualMaximumメソッドですが
Calendar cl = Calendar.getInstance();
int lastDay = cl.getActualMaximum(Calendar.DATE);
でその月の末日を取得できることがわかりましたが
応用で、1年間の(1月~12月)すべてを取得するときに
--------------------------------------------------
Calendar cl = Calendar.getInstance();
for(int n = 1; n<=12; n++){
cl.set(2005,12+n,1);
cl.add(Calendar.DAY_OF_MONTH,1);
cl.set(cl.get(Calendar.YEAR),cl.get(Calendar.MONTH),cl.getActualMaximum(Calendar.DATE));
System.out.println(cl.get(Calendar.YEAR) +"年"+ cl.get(Calendar.MONTH ) + "月"+ cl.getActualMaximum(Calendar.DATE) +"日");
}
}
}
-------------------------------------------------
月は「0」から始まるということは理解できたのですが
これだと実行結果が
2006年1月28日
2006年2月31日
2006年3月30日
2006年4月31日
2006年5月30日
2006年6月31日
2006年7月31日
2006年8月30日
2006年9月31日
2006年10月30日
2006年11月31日
2007年0月31日
----------------------------------------------
となってしまうのですが、一番初めが2月の
末日を取得してしまっているのはわかっているのですが
どこを直せばよいのかわかりません。
ご教授お願いできますか?
よろしくお願いいたします。
お礼
エクセルは使えないので他の方法でお願いします。