セールスフォースお助け隊ブログ | Salesforce
セールスフォース開発者のブログRSS
[Apex]2つの日付の期間日数を求めるには?

[Apex]2つの日付の期間日数を求めるには?

2010年12月25日 11:23

みなさんこんにちは。
salesforceお助け隊の加藤です。

今回は、2つの日付の期間日数を求める方法をご紹介します。

2つの日付の期間を日数で取得するには、
DateクラスのdaysBetweenメソッドを使用します。

daysBetweenメソッドの引数には比較するDateクラスを渡します。

例)
2010/12/1~2010/12/31の期間の日数を求める。

Date startDate = Date.newInstance(2010,12,1);
Date endDate = Date.newInstance(2010,12,31);
System.debug(startDate.daysBetween(endDate));

結果は、30が返されます。

日付の比較を逆にするとマイナスが返されます。
System.debug(endDate.daysBetween(startDate));

結果は、-30が返されます。

同日を比較すると、
Date startDate = Date.newInstance(2010,12,1);
Date endDate = Date.newInstance(2010,12,1);
System.debug(startDate.daysBetween(endDate));

結果は、0が返されます。


返された値は、比較の基点となった開始日付の
DateクラスのaddDaysメソッド(日付の加算を行なうメソッド)に渡すと
終了日付が返されます。

例)
開始日付が、2010/12/1
終了日付が、2010/12/31
Date startDate = Date.newInstance(2010,12,1);
Date endDate = Date.newInstance(2010,12,31);
System.debug(startDate.addDays(startDate.daysBetween(endDate)));

結果は、2010/12/31が返されます。

「セールスフォースお助け隊ブログ」へのコメントやご意見等ありましたら
ファンページまでお願いします。  Facebookのファンページ

Yahoo!ブックマークに登録 Google ブックマーク はてなブックマーク Livedoorクリップ

← 前のエントリー     次のエントリー →

顧客管理システム Salesforce CRM