日期计算器
结果
总天数
- 年
- 1
- 个月
- 0
- 天
- 0
- 总周数
- 52.1 周
两个日期之间相差多少天,算起来容易,算对却不容易。2026 年 1 月 31 日到 3 月 1 日是 29 天,多数人会说这是一个零一天——可 1 月 31 日加一个月是 2 月 28 日,所以按「借位相减」写的实现会报出一个零负三十天,或者报零个月。这个日期计算器把同一段间隔写成四种结果:总天数、总周数,以及按日历夹取的年月日拆分。
日、周、月、季度、年各有多少天
| 跨度 | 天数 |
|---|---|
| 日 | 1 天 |
| 周 | 7 天 |
| 月 | 28 – 31 天 |
| 季度 | 90 – 92 天 |
| 年 | 365 或 366 天 |
只有前两行是常数。一个月是 28 到 31 天、一个季度是 90 到 92 天,所以 90 天只有在恰好从某个月开始时才正好是一个季度。这就是上面的年月日拆分按日历试走、而不是做除法的原因。
公式
总天数 = 起始日到结束日之间的整天数;年月日拆分取「不超过结束日」的最大整月数
- totalDays
- 两个日期之间的整天数;起始日当天不计入,结束日计入
- totalWeeks
- 总天数除以 7,保留一位小数,不取整成整周
- months
- 能装下的整月数,按日历量,而不是按 30 天一块量
- days
- 整月之后剩下的天数——总是短于紧接着的那个月
用它可以数出距离某个截止日相差多少天、某个项目一共做了多久,或者核对别人给出的数字。只信总天数那一个:年月日拆的是同一段间隔的日历说法,所以 365 天读作一年,而 364 天读作十一个月零三十天——两个数字看着矛盾,其实都对。它做不到的是只数工作日,也做不到把 1582 年以前的日期当成别的历法,这里一律是推算格里高利历。
算例
2026 年 1 月 1 日到 2027 年 1 月 1 日
- 总天数:2026 年是平年,所以 2026 年 1 月 1 日到 2027 年 1 月 1 日是 365 天——起始日不计入,结束日计入
- 整月试走:正好装下一个整年并落在结束日上,所以年 = 1,月与日都是 0
- 总周数:365 ÷ 7 = 52.14,按一位小数写作 52.1,而不是取整成 52
- 总天数是最先算出来的那个数,年月日拆分不会反过来影响它
两种读法完全吻合的情形。下一个例子才是它们打架的那种。
2026 年 1 月 31 日到 3 月 1 日
- 总天数:2 月的 28 天加 3 月的 1 天,共 29 天
- 1 月 31 日加一个月会夹到 2 月 28 日,仍在结束日之前,所以整月数可以取到 1
- 1 月 31 日加两个月是 3 月 31 日,已经越过 3 月 1 日,所以整月数停在 1
- 余下从 2 月 28 日到 3 月 1 日的 1 天,拆分结果就是一个月零一天
这正是「借位相减」写错的那种情形:它拿日期里的 31 和 1 去借位,报出一个零负三十天,或者零个月零二十九天。两个结果加回起始日都落不到结束日上。
2024 年 2 月 29 日到 2025 年 2 月 28 日
- 2024 年是闰年、2025 年是平年,所以两端相隔 365 天,尽管日期号从 29 掉到了 28
- 2024 年 2 月 29 日加一年是 2025 年 2 月 28 日——一年在日历上不是一个固定天数
- 试走正好落在结束日上,所以月与日都是 0
- 总天数仍然是 365,与第一个例子相同,而这段间隔里的每一天都提前了一天
同样 365 天,可以是一年,也可以不是,取决于它从哪一天开始。所以这一页同时给出两种读法,而不是替你选一个。
局限
拆分是描述,不是单位换算。一个月是 28 到 31 天,所以 30 天在一种配对下读作一个月,在另一种配对下读作零个月;这里的规则是不断把整月加回去,直到再加一个月就越过结束日为止。别的工具用的是另一套规则,同一对日期会差上一两天。总天数没有这种自由度。这里也不数工作日,不跳过法定节假日。
常见问题
- 两个日期之间相差多少天怎么算?
- 从起始日到结束日数整天数,起始日当天不计入,结束日计入。2026 年 1 月 1 日到 2027 年 1 月 1 日是 365 天,因为 2026 年是平年。这条口径让同一天读作 0 天而不是 1 天,本站另外几个日期工具用的也是它。
- 1 月 31 日到 3 月 1 日是几个月零几天?
- 一个月零一天。1 月 31 日加一个月会夹到 2 月 28 日,还没到 3 月 1 日;加两个月是 3 月 31 日,又越过去了。于是从 2 月 28 日到 3 月 1 日剩下 1 天。按借位相减写的实现会报出负三十天。
- 起始日当天算不算在内?
- 不算,起始日是计数开始的前一天,结束日算在内。所以同一天读作 0 天,1 月 1 日到 1 月 2 日读作 1 天。工作日计算器与天数加减计算器用的是同一条口径,几个页面上的数字因此对得上。
- 为什么有的年份是 365 天、有的是 366 天?
- 因为一年在日历上不是固定天数,一个月也不是。2024 年 2 月 29 日到 2025 年 2 月 28 日是 365 天,拆分把它读作一年,因为起始日加一年正好落在结束日上;含闰日的间隔是 366 天,同样读作一年。
- 结束日比起始日早可以吗?
- 可以,两端写反时会先交换再算,答案完全一样。带符号的差值会是另一个工具,而这里给的是间隔的长度——截止期限、项目工期、合同期要的都是长度,不是方向。如果你要的确实是「还剩几天」这种带方向的说法,那应该按开始与结束分别填两次,再看两个结果。
参考资料
- 才 28 号,怎么就月末了? — 中国科学院紫金山天文台(科普中国)
- 《中华人民共和国民法典》总则编 第十章 期间计算(第二百条至第二百零四条) — 旬邑县人民政府门户网站(《民法典》条文)