HandyTools Hub
← 返回工具列表

日期计算器

计算日期差异和执行日期运算

日期间隔

选择两个日期查看差异

快速日期信息

在上面选择日期查看详情

星期几 -
周末 -
闰年 -
ISO 周数 -

这个日期计算器回答规划中反复出现的两个问题:两个日期相隔多少天,以及从某个起点前后若干天是哪一天。它内置了容易在心算中翻车的公历规则——大小月、跨年进位、闰年二月——并返回天、周、月、年以及星期和 ISO 周数。

使用方法

  1. 选择模式:日期间隔或日期加减。
  2. 在日期间隔中选择开始和结束日期。结果显示总天数、整周数、整月数和年数。
  3. 在日期加减中选择基准日期并输入天数。负数表示向前推算;结果显示新日期及其星期。
  4. 阅读快速信息卡片,查看相关日期的星期、是否周末、是否闰年以及 ISO 周数。

实操示例

示例 1——发票账龄。 开始 2026-01-15,结束 2026-03-10。相差 54 天、7 周、1 个月、0 年。注意 7 周(49 天)和 1 个月相加并不等于 54——它们是同一时间跨度的独立整单位计数,而非可加的组成部分。

示例 2——一周交付窗口。 开始 2025-12-25,结束 2026-01-01,结果恰为 7 天、1 周、0 个月、0 年。这两个日期跨越年末,工具无需特殊输入即可处理。

示例 3——跨越年末相加。 基准 2026-12-30 加 5 天 → 2027-01-04,是星期一,也是当年第一个工作日。反向相减:基准 2026-01-04 加 -5 → 2025-12-30。

示例 4——闰日。 基准 2024-02-28 加 2 → 2024-03-01。在非闰年,同样从 2025-02-28 加 2 得到 2025-03-02,因为 2025 年 2 月只有 28 天。

天、周、月、年分别代表什么

字段规则适用场景
天日历天的绝对计数;两端都归零到午夜发票、截止日、孕期与倒计时
周floor(天数 ÷ 7)冲刺、租期、通知期
月完整日历月;当结束日的日号早于开始日的日号时减一合同、订阅、试用期
年floor(完整月数 ÷ 12)在职时长、年龄区间、长期规划

由于月和年都取截断的整单位,显示的月数可能小于天数给人的直觉。这是有意为之:一份 1 月 15 日起算的「一个月」合同,通常不会在 2 月 14 日到期。

结果背后的闰年规则

当年份能被 4 整除且不能被 100 整除时为闰年,但若同时能被 400 整除则仍是闰年。因此 2024 年和 2000 年是闰年,而 1900 年和 2100 年不是。这有两个影响:闰年二月多出 29 日,会改变任何跨越它的时段天数;在 2 月末附近加减天数,结果也会随年份不同而落在不同日期。计算器自动套用该规则,所以 2024-02-28 加 2 天与 2025-02-28 加 2 天会正确给出不同结果。

值得了解的边界情况

  • 此处不开放月末钳制。 日期加减以天为单位,因此从不需要判断「1 月 31 日之后一个月」到底是 2 月 28 日还是 3 月 3 日。若需要这种行为,请改用支持相应月规则的日历应用。
  • 相同日期返回零。 开始和结束选同一天,结果为 0 天;月和年计数保持为 0,而不会猜一个正的最小值。
  • 周末与闰年标记描述的是某一天,而非整个跨度。 日期间隔模式下快速信息面板报告开始日期,日期加减模式下报告计算结果。
  • 时区边界。 工具使用浏览器的本地日期字段。UTC+13 的用户输入的「今天」与仍在 UTC-8 前一天的服务器相比,在自动化比对中可能出现一天差异。

真实场景

通知期。 一份 2026-06-30 到期、需提前 60 天通知的租约,最后送达通知的日期是 2026-05-01——把到期日作为基准减去 60 即可。往回推是更可靠的方向,因为它给出截止日,而不是还剩多久。

孕周。 末次月经为 2026-01-05 时,280 天落在 2026-10-12。计算器报告 40 周,即常规的足月估算;临床医生随后会根据早期超声调整。

冲刺规划。 2026-03-02 开始的两周冲刺在 2026-03-16 结束。由于两端都归零且跨度不含起始瞬间,把开始当天算作第一天的团队应在结果上加一,或把基准设在期望结束日之前 14 天。

合同续约。 2025-08-31 开始的年度订阅在 2026-08-31 续约。工具报告 365 天、12 个月;它不模拟某些合同采用的月末钳制,因此起始日为 29、30 或 31 日时,请核对续约条款。

相关工具

常见问题

在「日期间隔」模式下,两个日期的先后顺序重要吗?

不重要。计算器取绝对值,因此 1 月 5 日到 1 月 20 日与 1 月 20 日到 1 月 5 日都返回 15 天。结果面板会把较早的日期标为开始、较晚的标为结束,所以两种输入都可读。

月份是怎么算的,每个月都按 30 天处理吗?

不是,月份按完整的日历月计算,而不是 30 天一块。1 月 15 日到 3 月 10 日是 1 个月,因为工具向前推进一个完整月到 2 月 15 日后,发现剩余 23 天不足以再凑满一个月。旁边显示的天数才是真实天数:该例为 54 天。

只能加减天数,还是也能加减月和年?

「日期加减」模式只接受整数天。输入负数即为减,例如 -30 表示把基准日期往前推 30 天。底层库带有月、年辅助函数,但界面未开放。

为什么 ISO 周数和我表格软件里的对不上?

本工具采用 ISO 8601 规则:周一为一周开始,且包含 1 月 4 日的那一周为第 1 周。表格软件常默认周日开始的美国式周制,可能整体差一位。复制前请确认报表需要哪种约定。

比较两个日期时用的是当天什么时间?

两个日期都会先归零到本地午夜再相减,因此忽略时刻。这让天数在大多数时区和夏令时切换下保持稳定,不过在相差极大的时区里,临近午夜输入的日期仍可能相差一天。

闰年和 2 月 29 日是怎么处理的?

闰年遵循公历判定:能被 4 整除,整百年除外,除非能被 400 整除。偏移模式使用原生日期运算,所以对 2024-02-28 加 2 天会正确落到 2024-03-01,快速信息面板也会标注所选年份是否为闰年。

由 HandyTools Hub 团队审校 · 最后更新