fc2ブログ
 
■プロフィール

クリエイトウェーブ

Author:クリエイトウェーブ
開発における、諸々を書いていきたいなと思っています。
mail : info@createwave.jp

■最近の記事
■カテゴリー
■最近のコメント
■月別アーカイブ

■最近のトラックバック
■ブログ内検索

■RSSフィード
■リンク
ある日付から○○日後の日付を取得[iアプリ DoJa-5.1]
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()にこんな使い方があるとは思いませんでした。


カテゴリー:JAVA | TM(0) | CM(0)
次のページ