EP02. “DateDiff Function DateDiff 函数”
🔒 登录后可标记已读DateDiff函数算出两个日期(或时间)之间差了多少天、周、月、年,或多少小时、分钟、秒- 靠第一个参数(单位代号)决定算法结果的单位
- 前置知识:DateValue、TimeValue 的基本用法
- 学完能自己算任意两个日期/时间之间的间隔
重点内容
适用版本
桌面版通用(Excel 365 / 2021 / 2019 等)。
算日期差(天数)
Dim firstDate As Date, secondDate As Date, n As Integer
firstDate = DateValue("Jan 19, 2020")
secondDate = DateValue("Feb 25, 2020")
n = DateDiff("d", firstDate, secondDate)
MsgBox n
第一个参数 "d" 代表用「天」当单位,结果是两个日期之间差了几天。
📌 其他常用单位:"ww" 周、"m" 月、"yyyy" 年。
算时间差(小时数)
Dim firstTime As Date, secondTime As Date, x As Integer
firstTime = TimeValue("2:15:00 PM")
secondTime = TimeValue("5:15:00 PM")
x = DateDiff("h", firstTime, secondTime)
MsgBox x
第一个参数 "h" 代表用「小时」当单位。
📌 其他常用单位:"n" 分钟、"s" 秒。
单位代号对照表
| 代号 | 单位 |
|---|---|
| yyyy | 年 |
| m | 月 |
| ww | 周 |
| d | 天 |
| h | 小时 |
| n | 分钟 |
| s | 秒 |
学完你会
- ✅ 用
DateDiff算出两个日期之间差几天、几周、几月、几年 - ✅ 用
DateDiff算出两个时间之间差几小时、几分钟、几秒 - ✅ 知道单位代号要照对照表填,写错代号结果单位就不对
常见错误
- 单位代号写错(比如把月份的 "m" 跟分钟的 "n" 搞混),算出来的差值单位不对
- 忘记
DateDiff第二个参数要比第三个参数早,顺序颠倒会算出负数 - 日期字符串格式没有用
DateValue/TimeValue转换,直接拿文字比较,得不到正确结果
Sources
Blog / Website: