投稿日:2009-09-28 Mon
Pです。JAVAのAPIを見るとCalendar.add()という、まさにそのものズバリな
メソッドがあるのですが、DoJa環境では使用出来ないようです。
仕方ないのでCalendar.getTime()でミリ秒計算して対応していたわけですが
最近もっと簡単な方法を見つけたのでメモ。
Calendar getLapsedDays(int year, int month, int date, int days)
{
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month);
c.set(Calendar.DATE, date + days);
return c;
}
Calendar c = getLapsedDays(2009,0,1,5);
System.out.println(
c.get(Calendar.YEAR) + "/" +
(c.get(Calendar.MONTH) + 1) + "/" +
c.get(Calendar.DATE));
daysに10を入れると10日後→2009/1/11
-5を入れると5日前→2008/12/27
といった具合に取得できます。
年や月をまたいだり、閏年などの特殊ケースも問題なく動作します。
Calendar.set()にこんな使い方があるとは思いませんでした。
△ PAGE UP