📝 博客 · · ⏱ 7 分钟

怎么算两个日期相差多少天?日期差全攻略

两个日期相差多少天怎么算?讲清自然日与工作日的区别、端点包含与否的经典陷阱、闰年处理,附项目工期、恋爱纪念日、租房押金等真实场景算例。

日期计算时间工具效率

怎么算两个日期相差多少天?日期差全攻略

"我们在一起多少天了?""这个项目还剩几个工作日?""押金退还期限到哪天?"——这些问题看起来都是简单减法,但真动手算时,跨月、跨年、闰年、端点算不算、要不要扣周末,随便一个环节出错,结果就差好几天。这篇文章把日期差计算的所有坑一次讲明白。

日期差的两种口径:自然日与工作日

自然日(Calendar Days)

自然日就是日历上实实在在过去的天数,包含周末和节假日。这是最基础的口径,也是法律文书、合同期限、医学观察期的默认口径。

工作日(Business Days / Working Days)

工作日只统计周一到周五,扣除周末;在国内还要额外扣除法定节假日,但需要加回调休上班的周末。

两者的差距非常可观。以 30 个自然日为例,大约只对应 21~22 个工作日;100 个自然日约对应 71 个工作日。如果合同写"30 个工作日内交付",实际期限接近 6 周而不是 1 个月。

自然日约等于工作日约等于周数
751
14102
3021~22约 4.3
6042~43约 8.6
9064~65约 12.9
180128~130约 25.7
365260~26152

一年 365 天里有 52 个完整周共 104 个周末日,所以工作日基数是 261 天,再扣掉国内 11 天法定假日(部分与周末重合),实际约 250 天。这个"250 个工作日"是做人力成本核算时的常用基数。

最大的坑:端点算不算

这是日期差里唯一真正容易吵起来的问题。

假设从 3月1日3月10日

两种结果都对,取决于问的是什么。判断标准很简单:

问"间隔/相差"用 9,问"共计/持续"用 10。

不同场景的惯例

场景通行口径说明
住院天数含首尾3/1 入院 3/10 出院算 10 天
酒店住宿不含末日3/1 入住 3/10 退房算 9 晚
合同履行期通常不含首日"自签订之日起 30 日内"
项目工期含首尾3/1 开工 3/10 完工共 10 个工作日
年假计算含首尾请假 3/1–3/3 扣 3 天
恋爱纪念日含首日确定关系当天记为第 1 天
银行计息算头不算尾存入日计息,取出日不计

"算头不算尾" 是金融领域的标准做法,务必记住。存款 3月1日 存入、3月10日 取出,计息天数是 9 天。

手工计算方法

如果不用工具,可以用"儒略日序数"的思路:把每个日期转换成"从某个固定起点算起的第几天",再做减法。

一个简化的手算方法是分段累加

例:2024年3月15日 到 2024年11月8日
  1. 3月剩余:31 − 15 = 16 天
  2. 4~10 月整月:30 + 31 + 30 + 31 + 31 + 30 + 31 = 214 天
  3. 11月:8 天
  4. 合计:16 + 214 + 8 = 238 天

跨年时再加上中间的整年天数(平年 365,闰年 366)。

闰年判定规则

能被 4 整除          → 闰年
但能被 100 整除      → 不是闰年
但能被 400 整除      → 又是闰年

所以 1900 年不是闰年,2000 年是闰年,2024 年是闰年,2100 年不是闰年。跨越 2 月的日期差如果忽略闰年,会少算 1 天。

真实场景算例

场景一:项目工期倒排

项目要求 2026年6月30日 交付,今天是 2026年4月10日

如果团队 5 人,每人每天有效产出 6 小时,总人力预算 = 57 × 5 × 6 = 1710 人时。这才是排期的真实依据,直接按"还有两个多月"拍脑袋会严重高估产能。

场景二:恋爱纪念日

确定关系日 2023年5月20日,想知道到 2026年8月4日 是第几天。

若按"确定关系当天为第 1 天"的习惯,则是 第 1173 天。想提前知道"1314 天"落在哪天,也是同一套逻辑反推。

场景三:租房押金退还

合同约定"退租后 30 个自然日内退还押金"。2026年3月15日 退租:

如果合同写的是"30 个工作日",30 个工作日 ≈ 42~44 个自然日,期限将推迟到 4月28日左右。签合同时一定要看清是自然日还是工作日,这两个字的差距是两周。

场景四:证件到期提醒

护照 2027年2月28日 到期,多数国家要求入境时护照有效期剩余 6 个月以上。倒推 6 个月即 2026年8月28日 之后就不能再用它办签证了。这类反向推算很容易忘记,建议算出来后直接设日历提醒。

用工具计算最省事

手算适合理解原理,日常还是直接用日期差计算工具最快。使用步骤:

  1. 输入开始日期结束日期
  2. 选择是否包含结束日(对应前面说的端点问题)
  3. 结果会同时给出总天数、周数、月数、年数的多种表示
  4. 需要工作日时切换到工作日模式,自动扣除周末

工具还能反向计算:"从今天起 100 天后是哪天"这类需求,在算试用期结束、产品保质期、疫苗第二针时间时非常实用。

三条实用建议

  1. 书面约定必须写明口径。合同里写"30 日内"要补充"自然日"或"工作日",写"自 X 日起"要说明是否含当日。一个字的模糊可能引发纠纷。
  2. 涉及金钱的按"算头不算尾"。利息、罚息、滞纳金的行业惯例如此,除非另有约定。
  3. 跨 2 月的计算务必检查闰年。特别是 2 月 29 日出生的人计算年龄、2 月签订的年度合同,都要单独核对。

需要重复计算多个日期区间时,建议把日期差计算工具收藏起来,比每次打开 Excel 写公式快得多,也不会因为单元格格式问题算错。