【Excel VBA】用datediff函数计算两个日期的间隔,实例代码亲测好用

说明

前一段时间在CSDN上回答了一位朋友的提问,其中就用到了datediff函数。个人认为这个自带的函数功能很强大,但是了解的人很少,我在最开始写一写功能的时候偶尔就会遇到求日期间隔或时间间隔的情形,不知道此函数就头疼的很,因为日期和时间的间隔不像是数字的间隔,直接使用“-”减号就计算出来了。
日期中涉及不同月份所含天数有30天的、有31天的,甚至2月份有28天或29天的情形,跨年的时候就是12进制;时间则是60进制、24进制,真的是想想就头疼,写起来更是痛苦。
直到某一天突然间了解到了datediff函数,简直就是大救星啊!它可以根据指定的间隔方式,计算日期间隔和时间间隔,例如想要计算两个日期之间间隔多少天、多少个天等等。

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

参数说明
interval必需。 表示用于计算 date1 和 date2 之间差异的时间间隔的字符串表达式。
date1必需;Variant (Date),最好是日期或时间较早的那个值
date2必需;Variant (Date),相应的日期或时间较晚的那个值
firstdayofweek可选。 一个指定一周的第一天的常量。 如果未指定,则会假定为星期日。
firstweekofyear可选。 一个指定一年的第一周的常量。 如果未指定,则会假定 1 月 1 日出现的那一周为第一周。

interval 参数具有以下设置

Setting说明
yyyy
q季度
m
y每年的某一日
d
w工作日
ww
h小时
n分钟
s

剩余firstdayofweek 和firstweekofyear两个参数使用默认就可以,如果有更细致的要求的话可以参考MDSN上datediff函数的条目。举个栗子吧:

代码code

Sub 时间间隔()
  Dim tS As Date
  Dim tE As Date
  tS = Cells(2, 1).Value '开始日期
  tE = Cells(2, 2).Value '结束日期
  
  Cells(2, 3).Value = datediff("yyyy", tS, tE) '间隔-年
  Cells(2, 4).Value = datediff("q", tS, tE) '间隔-季度
  Cells(2, 5).Value = datediff("m", tS, tE) '间隔-月
  Cells(2, 6).Value = datediff("ww", tS, tE) '间隔-周
  Cells(2, 7).Value = datediff("d", tS, tE) '间隔-日
End Sub

使用说明

首先通过截图看一下运行的结果:
运行结果
A2和B2的日期值是手动填写的,后面从C2至G2均为代码计算得出的数据。可以看到运用datediff函数真的很简便、很准确,再也不用为计算日期时间间隔抓耳挠腮了!
如有意见建议或使用中出现Bug留言,谢谢!

评论 2 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:创作都市 设计师:CSDN官方博客 返回首页

打赏作者

碰碰虎

20年挑灯夜战秃了头,有赏!

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值