日期运算

日期时间计算器

把日历上最容易算错的日期题交给它:给某个日期加减年、月、周、天,算两个日期之间隔了多少天和工作日,或者用生日算出精确到年月日的年龄与下次生日。闰年和月末自动处理,数据不出浏览器。

日期加减 工作日计算 年龄精确到天 本地计算

加月时优先保留原来的「日」;目标月份没有这一天时,自动收敛到该月最后一天(如 1 月 31 日 + 1 个月 = 2 月 28/29 日)。

总天数按两个日期之间经过的自然日计算;工作日会排除周六和周日。

年龄按整年、整月、整日累计;2 月 29 日出生的人在平年按 2 月 28 日计算。

本次会话

记录只保存在当前页面的内存里,刷新或关闭标签页后即消失。

为日常日期问题而做

一个页面,三种算法

平时要靠掰手指或翻表格才能算清的日期问题,这里输入即得。

01

任意日期加减

一次完成年、月、周、天的加减,适合算截止日、续费日、提醒日和交付周期。

02

两个日期差多少

以总天数、周数以及「年月日」三种口径给出两个日期之间的距离。

03

工作日统计

只算周一至周五,用于排期、SLA 计时和请假天数估算。

04

精确年龄

把生日换算成几岁几个月几天,并给出下次生日的日期与倒计时。

05

边界情况自动处理

闰年、月末、周末都由 UTC 日期运算统一处理,结果不会因夏令时差一天。

06

打开就能用

免注册、无上传,所有计算都在浏览器本地完成。

日期运算的规则

几个关键规则,决定计算结果是否与纸质日历一致。

「加一个月」到底是多少天?

月份天数不固定,所以日期计算以「同一天」为锚点:1 月 15 日 + 1 个月 = 2 月 15 日。目标月份没有这一天时,会收敛到该月最后一天:1 月 31 日 + 1 个月 = 2 月 28 日(闰年 29 日),3 月 31 日 − 1 个月同样是 2 月 28/29 日。

为什么天数、周数和年月日结果对不上?

总天数是两个日期之间固定数量的自然日;周数只是把总天数按 7 分组。年月日差则是顺着日历逐段推进得到的结果,更接近口头表达(1 年 2 个月 3 天),不能简单用除法换算。

工作日是怎么算的?

这里的工作日指周一至周五,不包含法定节假日。各国节日不同,工具不做猜测;如果你的排期需要扣除假期,请在结果上自行减去。

为什么用 UTC 计算?

纯日期没有时区概念。用 UTC 计算可以避开夏令时切换——本地某一天可能是 23 或 25 小时,简单的除法会四舍五入到错误的一天。

常见期限速查表

工作与手续里最常遇到的日期区间,以及决定具体是哪一天的计数口径。

场景 常见期限 计算口径
30 / 60 / 90 天账期 30、60、90 个自然日 从开票日或交付日起算,先确认起算日当天是否计入
试用期 / 通知期 1–6 个月 按月推进而非固定天数,月末会收敛(1 月 31 日 + 3 个月 = 4 月 30 日)
签证或免签停留 90 个自然日 通常从入境次日起算,离境日一般不计入
孕期 40 周 / 280 天 从末次月经首日算到预产期
退货 / 保修窗口 7、14 或 30 天 先看清条款写的是自然日还是工作日
金融结算 T+1 / T+2 1–2 个工作日 跳过周末与当地法定节假日,日历日期会顺延
合同「90 天内」 90 个自然日 写明起算日是否计入,争议通常出在这里

合同只写「天」时按自然日理解,并把起算日写清楚。

不产生歧义的日期写法

同样八个数字可能代表两个不同的日子,下面几种写法值得认清。

写法 示例 常见场景
ISO 8601 2026-10-26 接口、数据库、文件名、国际标准
RFC 3339(带时间) 2026-10-26T14:30:00+08:00 带时区的 Web 接口与日志
日 / 月 / 年 26/10/2026 英国、欧洲多数国家、澳洲、拉美
月 / 日 / 年 10/26/2026 美国、菲律宾,最容易与上一种混淆
中文写法 2026年10月26日 中文合同、票据、公文
英文书写 26 October 2026 英文合同与证书,月份用文字最稳

跨境场景优先用 ISO 8601 或把月份写成文字;纯数字的 DD/MM 与 MM/DD 最容易出错。

常见问题

开始日期和结束日期会包含在天数里吗?

工具给出的是经过的天数:1 月 1 日到 1 月 2 日是 1 天,同一天则是 0 天。如果你需要「首尾都算」(比如酒店住宿晚数),把结果加 1 即可。

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

2 月 29 日可以作为输入,加一年会落到下一个平年的 2 月 28 日。年龄计算中,2 月 29 日出生的人在平年按 2 月 28 日过生日。

能算很久以前或很远的未来吗?

公元 1 年到 9999 年之间的日期都可以计算,历史日期和长期规划同样适用,结果基于公历(格里高利历)推算。

可以用来排工作计划吗?

可以用于周一至周五的工作日计数。由于各地节假日不同,工具不会自动扣除节日,请按自己的假期表调整结果。

输入的数据会上传吗?

不会。页面只有前端脚本,日期不会离开浏览器,也不需要账号或服务端存储。

年龄、周年与 2 月 29 日

不同场景对「几岁」的定义不同,先选对口径。

01

周岁

从生日当天起算,到下一个生日前一天为整 N 岁。2000-05-15 出生,2018-05-15 当天满 18 岁,而不是元旦。

02

虚岁

传统算法出生即 1 岁,每逢新年加 1 岁,因此可能比周岁大一到两岁。

03

法定年龄

多数地区在生日当天开始即达到法定年龄,少数按出生时刻计算;涉及合同、证件时以当地规定为准。

04

周年与 2 月 29 日

周年按年或按月推进,月末会收敛。2 月 29 日出生者,平年通常按 2 月 28 日纪念,但部分司法辖区按 3 月 1 日。

日历小史

为什么「一年」不是正好 365 天,以及 1582 年为什么会凭空少掉十天。

  1. 公元前 45 年

    儒略历

    凯撒用太阳历取代罗马阴历,并规定每四年一闰。它每年比回归年长约 11 分钟。

  2. 325 年

    尼西亚会议

    教会统一复活节日期,历法累积的偏差随后成为宗教与民事问题。

  3. 1582 年

    格里高利历改革

    教皇格里高利十三世删掉十天——10 月 4 日之后直接是 10 月 15 日,并加入百年 / 四百年闰规则。英国及其殖民地到 1752 年才改用。

  4. 1970 年

    Unix 纪元

    1970-01-01 00:00 UTC 成为 Unix 时间的零点。它是一个时刻而非日历日,所以时间戳必须带时区。

  5. 1988 年

    ISO 8601

    标准统一了 YYYY-MM-DD 和以周一为一周起点的周数编号,至今用于薪资、物流与项目排期。

今天日常使用的就是格里高利历;每四年出现的闰年规则,来自 1582 年这次修正。

相关工具

需要的是具体时刻而不是日期?这几个工具正好互补。