日期计算器

两日期求差、单日期加减,可按工作日跳过周末与闰年边界。

日期计算器提供两种模式,用工具条上「两日期相差」「日期加减」两个分段按钮切换。「两日期相差」首屏给出四个主口径——整天差、几周几天、几个月零几天、几年几月几天;「日期加减」支持年/月/周/天/小时/分钟六种单位的正负运算。每个数各用各的口径(日历天按墙钟日期、小时按真实经过时间),跨夏令时相差 1 小时属于正常,提示条会写明。结果右侧是一张按月排开的密集月历网格(周一起排),区间内日期描边、两端实底、周末灰字。

两处最容易起争议的细节都被显式处理。其一是月底截断:2026-01-31 加 1 个月,日历上不存在 2 月 31 日,本工具按 ISO/多数日期库的惯例截到 2 月 28 日(闰年则 29 日),并在结果里注明「截断」,不会悄悄滚进 3 月。其二是跨夏令时的「一天」:加 1 个日历天保持墙钟时刻不变,3 月 8 日那一夜在多数实行夏令时的地区只有 23 小时,11 月 1 日那一夜有 25 小时,页面同时给出「日历天差」和「实际经过小时数」两个口径。月历网格不渲染任何外部依赖,表格用的是站内统一样式;所有计算都在浏览器里完成,不上传。

日期计算器怎么用

  • 两日期相差:选两个日期即算;总周数、实际经过的总小时数、星期以及区间内工作日/周末逐日统计收在「其他口径与逐日统计」折叠里,点开即得。勾选「只算工作日」后周一至周五的天数出现在「其他口径与逐日统计」折叠里(法定节假日与调休无法离线判定,未计入,提示条会说明)。
  • 日期加减:选方向(加/减)、数量与单位,基准可精确到分钟。加减「月/年」走日历并截断,加减「天/周」保持墙钟时刻,加减「小时/分钟」走真实毫秒——三种口径的差异在结果表里并列展示,附加口径在折叠区里点开即得。
  • 跨夏令时核对:在实行夏令时的时区(系统时区设置决定),把基准设在切换日前后各一天,「实际经过」列会出现 23.00 或 25.00 小时,页面会附说明;中国时区无夏令时,两口径恒等。
  • 月历画多少个月:默认只画前 2 个月,卡下有「显示全部 N 个月」按钮可一次摊开(再点「只看前 2 个月」收回去),而网格本身最多画 6 个月——日期加减模式是 4 个月——区间再长也只在表头写明「区间超过 N 个月,仅显示前 N 个月」。
  • 模式记忆:选中的模式记在本机 localStorage 的 kc-dc 里,刷新后回到上一次用的那个(无痕模式或存储被禁用时静默不记)。

常见问题

「相差几天」到底含不含首尾?

整天差按两个日期midnight之差计算,即「从 A 出发要过多少个午夜才到 B」:2026-03-02 到 2026-03-09 是 7 天。工作日/周末统计则是把 A 之后到 B 为止的每一天逐一归类的,两者之和等于整天差。需要「两端都算」的排期口径就自己 +1。

为什么加一个月后日期变了?

看结果里的「月底截断」说明:源日期的「日」在目标月份不存在(如 1 月 31 日 → 2 月),取该月最后一天是最不容易出副作用的做法,多数语言标准库(Java LocalDate.plusMonths、JS 生态的 date-fns/dayjs)同样如此。如果你的业务要的是「固定 28 号」语义,请先把日期规整再运算。若你想要「3 月 3 日」那种进位语义,请改用天为单位加 31 天。

闰年怎么判断的?

能被 4 整除且不能被 100 整除,或能被 400 整除:2026/2100 是平年,2028/2000 是闰年。工具在加减结果行直接写明起点与落点年份是否闰年,2 月的天数取实际日历。

对应功能编号 #46无需安装,手机端同样可用按 Ctrl + K 换工具