求两个日期间隔的函数DateDiff

发布时间:2021-05-25 Excel函数大全

1 DateDiff函数

这个函数返回一个Variant (Long),指定两个指定的日期之间的时间间隔数。

语法:DateDiff(interval, date1, date2, [ firstdayofweek, [ firstweekofyear ]] )

参数:

1)interval 必需。表示用于计算 date1和date2之间差异的时间间隔的字符串表达式。

2)date1、date2 必需;Variant (Date)。要在计算中使用的两个日期。

3) Firstdayofweek 可选。 指定一周的第一天的常量。 如果未指定,则会假定为星期日。

4)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 计算两个日期之间的天数或今天与该年的最后一天之间的周数。

若要计算 date1 和 date2 之间的天数,可以使用年份中的某一天 ("y") 或天 ("d")。 当interval 的设置是("w") 时,DateDiff 返回两个日期之间的周数。 如果 date1 为星期一,则 DateDiff 计算 date2 之前的星期一数。 它计算 date2 但不计算 date1。

如果interval 的设置是 ("ww"),则 DateDiff 函数返回这两个日期之间的日历周数。 它计算 date1 和 date2 之间的星期日数。 如果它为星期日,则 DateDiff 计算 date2,但它不计算 date1,即使它是星期日也是如此。

如果 date1 引用的时间点晚于 date2,则 DateDiff 函数将返回负数。 firstdayofweek 参数影响使用“w”和“ww”时间间隔符号的计算。

2 DateDiff 函数的应用实例

下面我们看一段代码,来学习一下这个函数的实际应用:

Sub mynzD() '求两个日期间隔的函数

Dim myF, myS As Date

myF = DateValue("Jan 19, 2020")

myS = DateValue("Feb 25, 2020")

n = DateDiff("d", myF, myS)

MsgBox n

End Sub

代码截图:

求两个日期间隔的函数DateDiff

 

代码解读:

上述代码先声明了一个变量myF,赋值为DateValue("Jan 19, 2020"),然后再赋值 DateValue("Feb 25, 2020")给第二个变量myS,然后利用DateDiff求出上述两个变量的日期差值n,最后利用对话框提示给用户。

我们看代码的运行结果:

求两个日期间隔的函数DateDiff

 

表明上述两个日期差37天。

3 利用DateDiff 函数求出生的天数

下面我们再看一下这个函数的应用,我们可以输入一个日期,然后求出这个日期和当日日期的差值,比如,我们录入的是自己的生日,这样就可以求出自己来到这个世界一共多少天了。

代码:

Sub mynzE() '求出生的天数

Dim myDate As Date

myDate = InputBox("请输入一个日期")

Msg = "您输入的日期和今天相隔的天数是: " & DateDiff("d", Now, myDate)

MsgBox Msg

End Sub

代码截图:

求两个日期间隔的函数DateDiff

 

代码讲解:

上述代码利用了InputBox函数让用户录入一个日期,需要注意的是我们利用了myDate变量来存储这个日期,但这个变量我们声明的是Date类型,要注意录入的信息要正确。

在随后我们会利用DateDiff函数求出这个日期和now的日期差值。

下面我们看代码的运行结果:假如你的生日是1969-10-1日,我们看看你在这个世界上生活的天数:

求两个日期间隔的函数DateDiff

 

求两个日期间隔的函数DateDiff

 

上述结果显示,一共是18648天。