例
2 つの日付間の日数を求めるには、d または y の単位パラメータと共に DateDiff を使用します。
DateDiff ("d", #10/7/1999#, #10/10/1999#)3 を返します。
2 つの日付間の年数を求めるには、yyyy の単位パラメータと共に DateDiff を使用します。このように DateDiff を使用すると、endDateTime の年と startDateTime の年の差が計算されます。
DateDiff ("yyyy", #10/7/1999#, #2/10/2005#)6 を返します。
DateDiff ("yyyy", #12/31/1999#, #1/1/2000#)1 を返します。日付の違いがわずか 1 日でも、1 年の差になります。
DateDiff ("yyyy", #1/1/1999#, #12/31/1999#)0 を返します。364 日の差があっても、0 年の差になります。
上の例において、最初の日付が投資信託を購入した日付、後の日付がそれを売却した日付だとします。投資信託会社は、顧客が投資を継続している間、毎年必ず年次報告書を送る必要があります。この場合は、上の例のように、それぞれ 7 回、2 回、および 1 回の年次報告書を送ることになります。
2 つの日付間の四半期(3 か月)の数を求めるには、q の単位パラメータと共に DateDiff を使用します。
DateDiff ("q", #10/6/1999#, #5/20/2003#)14 を返します。
DateDiff ("q", #3/31/1999#, #4/1/1999#)1 を返します。2 つの日付は、それぞれ別の四半期に入ります。
DateDiff ("q", #1/1/1999#, #3/31/1999#)0 を返します。2 つの日付は、同じ四半期に入ります。
年数の計算例で挙げた投資信託会社が四半期ごとに報告書を送るとします。上の例では、それぞれ 15 回、2 回、および 1 回の四半期報告書を送ることになります。
2 つの日付間の月数を求めるには、m の単位パラメータと共に DateDiff を使用します。
DateDiff ("m", #3/15/1999#, #7/13/1999#)0 を返します。
2 つの日付間の週数を求めるには、w の単位パラメータと共に DateDiff を使用します。たとえば、startDateTime が火曜日の場合、DateDiff は、最初の startDateTime の火曜日は入れずに、startDateTime と endDateTime の間にある火曜日の数を求めます。一方、endDateTime が火曜日の場合、この火曜日は計算に入れられます。
DateDiff ("w", #10/19/1999#, #10/25/1999#)0 を返します。
DateDiff ("w", #10/19/1999#, #10/26/1999#)1 を返します。
2 つの日付間にある週の最初の曜日の数を求めるには、ww の単位パラメータと共に DateDiff を使用します。DateDiff 関数では、ww パラメータだけが“週の開始日”引数を利用します。他の単位パラメータの場合、“週の開始日”引数は無視されます。たとえば、“週の開始日”引数が crWednesday の場合は、“開始日時”と“終了日時”の間にある水曜日の数が求められます。“開始日時”が水曜日だった場合、この水曜日は計算に入れません。一方、“終了日時”が水曜日だった場合、この水曜日は計算に入れられます。1999 年 10 月の 6 日、13 日、20 日、および 27 日が水曜日であることに注意して、次の例を参照してください。
DateDiff ("ww", #10/5/1999#, #10/29/1999#, crWednesday)0 を返します。
DateDiff ("ww", #10/6/1999#, #10/29/1999#, crWednesday)3 を返します。
DateDiff ("ww", #10/5/1999#, #10/27/1999#, crWednesday)0 を返します。
次の例では、土曜日と日曜日を除いて、受注日から発送日までの日数を計算しています。
Local DateTimeVar d1 := {Orders.Order Date};
Local DateTimeVar d2 := {Orders.Ship Date};
DateDiff ("d", d1, d2) -
DateDiff ("ww", d1, d2, crSaturday) -
DateDiff ("ww", d1, d2, crSunday)