piapia123
zh

日期间隔与加减计算

转换计算

所有处理都在浏览器本地完成,数据不上传服务器

或粘贴
或粘贴

结束日期留空就与今天比较 —— 只填一行也能用,问「距离某天还有多少天」时最省事。

负数往前推

算两个日期之间隔了多少天,或者把某个日期往前推、往后推若干天。两个日期各有两种填法:点开日历挑一个,或者直接粘贴 2026-09-18 这样的文本。结束日期留空就以今天为终点,所以「距离某天还有多少天」只要填一格。改任何一格结果都立刻更新。相差月数按日历计算而不是按每月 30 天估算;1 月 31 日加一个月会落到 2 月 28 日,而不是溢出到 3 月 3 日。

功能

  • 相差天数 / 周数 / 月数 / 年月日四种读法一次给全
  • 对起始日期加减天、周、月或年,正数往后、负数往前
  • 月末夹取:1 月 31 日加一个月得到 2 月 28 日(闰年 29 日),不会溢出到下下个月
  • 工作日天数(周一至周五,不扣法定节假日)
  • 跨夏令时切换的区间也按整天计算,不会莫名其妙差一天
  • 不存在的日期(如 2 月 30 日)直接报错,不做静默纠正
  • 结束日期留空则与今天比较,两侧都有「今天」按钮
  • 日期可以直接从原生日历上挑,也可以粘贴文本

使用方法

  1. 在「起始日期」里挑一个日期,或用文本框粘贴
  2. 需要的话再填「结束日期」;留空就与今天比较
  3. 需要的话设置加减数量与单位
  4. 结果实时出现,包含间隔、加减结果与工作日天数
  5. 点「复制」取走结果

常见问题

为什么「相差月数」和「天数 ÷ 30」对不上?
每个月的长度本来就不同。工具按日历算「整月 + 余下的天」,例如 1 月 1 日到 9 月 18 日是 8 个月 17 天,而按 30 天估算会得到另一个数。
工作日天数扣掉法定节假日了吗?
没有。只按周一至周五统计 —— 各国节假日、调休安排每年都在变,内置一张过期的表比不内置更容易误导人。需要精确排期时请在此基础上手动扣减。
为什么输入 2026-02-30 会报错?
因为那个日期不存在。JavaScript 的 Date 会把 2026-02-30 悄悄纠正成 3 月 2 日,用户会拿到一个看起来很正常的错误答案,所以这里选择直接报错。
时区与夏令时会影响结果吗?
不会。日期按 UTC 时刻计算,而 UTC 没有夏令时,每天恒为 86400 秒 —— 用本地时间相减的话,夏令时切换那两天会变成 23 或 25 小时,间隔会差一天。

相关工具