VBA中DateDiff函式用法
阿新 • • 發佈:2019-01-27
返回 Variant ( Long) 的值,表示兩個指定日期間的時間間隔數目。
語法
DateDiff( interval, date1, date2 [ , firstdayofweek [ , firstweekofyear ]] )
DateDiff 函式語法中有下列命名引數:
部分 | 描述 |
interval | 必要。字串表示式,表示用來計算 date1 和 date2 的時間差的時間間隔 |
Date1,date2 | 必要。 Variant ( Date) 。計算中要用到的兩個日期。 |
Firstdayofweek | 可選。指定一個星期的第一天的常數。 如果未予指定, 則以星期日為第一天 |
firstweekofyear | 可選。指定一年的第一週的常數。 如果未予指定, 則以包含1 月 1 日的星期為第一週 |
interval 引數的設定值如下:
設定 | 描述 | 設定 | 描述 |
yyyy | 年 | w | 一週的日數 |
q | 季 | ww | 周 |
m | 月 | h | 時 |
y | 一年的日數 | n | 分鐘 |
d | 日 | s | 秒 |
firstdayofweek 引數的設定值如下:
常數 | 值 | 描述 |
vbUseSystem | 0 | 使用 NLS API 設定 |
vbSunday | 1 | 星期日(預設值) |
vbMonday | 2 | 星期一 |
vbTuesday | 3 | 星期二 |
vbWednesday | 4 | 星期三 |
vbThursday | 5 | 星期四 |
vbFriday | 6 | 星期五 |
vbSaturday | 7 | 星期六 |
常數 | 值 | 描述 |
vbUseSystem | 0 | 用 NLS API 設定。 |
vbFirstJan1 | 1 | 從包含 1 月 1 日的星期開始(預設值) |
vbFirstFourDays | 2 | 從第一個其大半個星期在新的一年的一週開始 |
vbFirstFullWeek | 3 | 從第一個無跨年度的星期開始。 |
DateDiff 函式可用來決定兩個日期之間所指定的時間間隔數目。例如,可以使用 DateDiff 來計算兩個日期之間相隔幾日, 或計算從今天起到年底還有多少個星期。為了計算 date1 與 date2 相差的日數,可以使用“一年的日數” (y) 或“日” (d) 。當 interval 是“一週的日數” (w) 時,DateDiff 返回兩日期間的週數。如果 date1 是星期一, DateDiff 計算到 date2 為止的星期一的個數。這個數包含 date2 但不包含 date1 。不過,如果 interval 是“周” (ww),則DateDiff 函式返回兩日期間的“日曆周”數。由計算 date1 與 date2 之間星期的個數而得。如果 date2 剛好是星期日,則 date2 也會被加進 DateDiff 的計數結果中;但不論 date1 是否為星期日,都不將它算進去。如果 date1 比 date2 來得晚,則 DateDiff 函式的返回值為負數。firstdayofweek 引數會影響使用時間間隔符號 “W” 或 “WW” 計算的結果。如果 date1 或 date2 是日期文字,則指定的年份成為該日期的固定部分。 但是,如果 date1 或 date2 用雙引號 (" ") 括起來,且年份略而不提,則在每次計
算表示式 date1 或 date2 時,當前年份都會插入到程式碼之中。 這樣就可以書寫適用於不同年份的程式程式碼。在計算 12 月 31 日和來年的 1 月 1 日的年份差時,DateDiff 返回 1 表示相差一個年份,雖然實際上只相差一天而已。
DateDiff 函式示例
本示例使用 DateDiff 函式來顯示某個日期與今日相差幾天。
Dim TheDate As Date ' 宣告變數。
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg