日期计算器

一页两问:两个日期之间隔了多久;以及往前或往后走若干天之后,会落到哪一天。

日历差值
  • 总天数
  • 整周数
  • 工作日
  • 周末天数

天数按日历计算而不是按小时:一年有两天长 23 或 25 小时,用毫秒做算术会整整少一天。

使用方法

  1. 选择两个日期 — 各项数字立刻出现。
  2. 如果最后一天也算在期间内,就勾选「包含最后一天」。
  3. 切到「加减日期」,把某个日期按年、月、日移动。
  4. 在那里打开工作日模式,即可跳过周六和周日。

实用说明

为什么按日历计算天数

用两个时间戳相减再除以 86 400 000 看起来没错,却每年失败两次:换钟那两天一天只有 23 小时或多达 25 小时。「整整 30 天」于是变成 29 天 23 小时,向下取整成 29。这个计算器基于日历日期工作,所以在任何时区、任何一次换钟下答案都站得住。

一个月不等于三十天

给 1 月 31 日加一个月,诚实的答案是 2 月 28 日 — 存在的最后一天。放任浏览器自己算,它会给出 3 月 3 日,因为它悄悄溢出到了下个月。闰年也是同一个陷阱:2 月 29 日加一年是 2 月 28 日,而不是 3 月 1 日。这两种情况这里都处理了。

常见问题

会考虑法定节假日吗?

不会,只排除周六和周日。节假日各国不同、每年都变,凭空猜出的列表比没有更糟:它看起来权威,实际却是错的。要精确统计,请按你自己的日历来数工作日。

为什么结果比我预期少一天?

多半是最后一天也应该计入。从 1 月 1 日到 1 月 10 日相差九天,但休假是十天。「包含最后一天」这个选项就是为此准备的。

「1 年 2 个月 3 天」到底是什么意思?

它是同一段距离用日历单位表达:先看能装下几个整年,再看余下部分里有几个整月,最后是天数。它不是总数除以 365 和 30 — 那些数字另外单独给出,作为总天数、总周数和总月数。

能用它算年龄吗?

可以:把出生日期放在第一个,今天放在第二个,日历差值就是年龄的年、月、日。生日、纪念日或者合同日期,算法完全一样。

相关工具