DateDiff 函数
返回一个 Variant (Long),指定两个指定的日期之间的时间间隔数。
DateDiff(interval, date1, date2, [ firstdayofweek, [ firstweekofyear ]] )
DateDiff 函数语法包括这些命名参数:
Part | 说明 |
---|---|
interval | 必需。 表示用于计算 date1 和 date2 之间差异的时间间隔的字符串表达式。 |
date1、date2 | 必需;Variant (Date)。 要在计算中使用的两个日期。 |
firstdayofweek | 可选。 一个指定一周的第一天的常量。 如果未指定,则会假定为星期日。 |
firstweekofyear | 可选。 一个指定一年的第一周的常量。 如果未指定,则会假定 1 月 1 日出现的那一周为第一周。 |
interval参数具有以下设置:
Setting | 说明 |
---|---|
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 计算两个日期之间的天数或今天与该年的最后一天之间的周数。
若要计算 date1 和 date2 之间的天数,可以使用年份中的某一天 ("y") 或天 ("d")。 当时间间隔是工作日 ("w") 时,DateDiff 返回两个日期之间的周数。 如果 date1 为星期一,则 DateDiff 计算 date2 之前的星期一数。 它计算 date2 但不计算 date1。
但是,如果时间间隔是周 ("ww"),则 DateDiff 函数返回这两个日期之间的日历周数。 它计算 date1 和 date2 之间的星期日数。 如果它为星期日,则 DateDiff 计算 date2,但它不计算 date1,即使它是星期日也是如此。
如果 date1 引用的时间点晚于 date2,则 DateDiff 函数将返回负数。 firstdayofweek 参数影响使用“w”和“ww”时间间隔符号的计算。
如果 date1 或 date2 是日期字符串,则指定的年份变为该日期的永久部分。 但是,如果 date1 或 date2 用双引号 (" ") 引起且您省略了年份,则每当计算 date1 或 date2 表达式时就会将当前年份插入您的代码。 这样能够使编写的代码在不同年份中均可使用。
在将 12 月 31 日与随后一年中的 1 月 1 日相比时,“年”("yyyy") 的 DateDiff 会返回 1,即使仅过去一天时间。
备注
对于 date1 和 date2,如果 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。