MICROSOFT

EP02. “DateDiff Function DateDiff 函数”

首页 Microsoft 工具 Excel · VBA · Date and Time · EP02
约 4 分钟· #EP02#Excel#Date and Time
🔒 登录后可标记已读
  • 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:

  1. DateDiff Function