共用方式為


DateDiff 函式

傳回 Variant (Long) 指定兩個指定日期之間的時間間隔數目。

語法

DateDiff(interval, date1, date2, [ firstdayofweek, [ firstweekofyear ]] )

DateDiff 函式語法具有下列具名引數

組件 描述
Interval 必要。 字串運算式 也就是您用來計算介於 date1date2 之間差異的時間間隔。
date1date2 需要此項目;Variant (Date)。 您想要用於計算的兩個日期。
firstdayofweek 選用。 constant 會指定每週的第一天。 如果未指定,則會假設星期日。
firstweekofyear 選用。 常數會指定每年的第一週。 如果未指定,則會假設 1 月 1 日發生那一週為第一週。

設定

interval變數具有下列設定:

設定 說明
yyyy
q
m
y 年中的日
d
w 工作日
ww
h
n
s

firstdayofweek 引數具有這些設定︰

常數 描述
vbUseSystem 0 使用 NLS API 設定。
vbSunday 1 星期日 (預設值)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六

Firstweekofyear 引數具有這些設定︰

常數 描述
vbUseSystem 0 使用 NLS API 設定。
vbFirstJan1 1 從 1 月 1 日發生當週開始 (預設值)。
vbFirstFourDays 2 從新年度的第一週至少有四天開始。
vbFirstFullWeek 3 從該年第一個完整的一週開始。

註解

使用 DateDiff 函式來決定兩個日期之間,存在多少個指定的時間間隔。 例如,您可以使用 DateDiff 來計算兩個日期之間的天數或從今天到年底之間的週數。

若要計算介於 date1date2 之間的天數,您可以使用年中的日 ("y") 或天 ("d")。 當 interval 是工作日 ("w"),DateDiff 傳回兩個日期之間的週數。 如果 date1 是落在星期一,DateDiff 會計算直到 date2 的星期一數目。 其計算的是 date2 而不是 date1

如果 interval 是以週 ("ww") 計算;然而,DateDiff 函式會傳回兩個日期之間的行事曆週數。 其計算的是介於 date1date2 之間的星期日數目。 如果日期是落在星期日,DateDiff 會計算 date2;但即便日期落在星期日,它並不會計算 date1

如果 date1 指的是比 date2 更晚的一個時間點,那麼 DateDiff 函式會傳回負數。 firstdayofweek 引數會影響使用 "w" 和 "ww" 間隔符號的計算。

如果 date1date2日期常值,所指定的年度會永遠成為該日期的一部分。 不過,如果 date1date2 是以雙引號括住 (""),且省略年度;那麼每次在評估 date1date2 的運算式時,會將目前的年度插入程式碼中。 如此一來,便能夠撰寫可用在不同年度的程式碼。

當將 12 月 31 日跟緊接著年度的 1 月 1 日作比較時,即便只經過一天的時間,對於年度 ("yyyy"),DateDiff 會傳回 1。

注意事項

對於 date1date2,如果 Calendar 屬性設定為 [西曆],那麼提供的日期也必須是西曆。 如果行事曆為回曆,那麼提供的日期也必須是回曆。

範例

這個範例會使用 DateDiff 函式來顯示指定日期和今天之間的天數。

Dim TheDate As Date    ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg

另請參閱

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應