Tool 02 / Add or subtract
日期推算器
从某一天开始,往后数 30 天、往前推 3 个月,或者只数 10 个工作日,直接得到目标日期和星期。按“月”或“年”推算时如果遇到短月,会自动落到目标月的最后一天,并把这件事写在结果里。
填好起始日期和数量后显示
推算说明会显示在这里。
- 与起始日相差
- —
- 年内第几天
- —
- ISO 周
- —
- 日期格式
- —
按自然日推算;若数量为 0,目标日期与起始日期相同。
日期推算不是简单的加法。按天推可以一直往后滚,按“月”推却要面对大小月和闰年,这也是同一个需求在不同工具里算出不同结果的主要原因。
按天、周、月、年,规则并不一样
按天推最直接:在起始日期上加 30 天,就逐日走过 30 个自然日。按周推相当于加 7 的倍数,因此星期几不会改变。按年推通常保持月和日不变,只在 2 月 29 日遇到平年时取 2 月 28 日。
按月推最容易出现分歧。算法会先加月份,再检查目标月有没有这一天。比如 1 月 31 日加一个月,先得到“2 月 31 日”,这个日期不存在,于是落到 2 月的最后一天:平年是 2 月 28 日,闰年是 2 月 29 日。本站采用这个规则,并会在结果下方标注“已取月末”。
“跳过周末”到底在数什么
勾选跳过周六日后,工具不再按自然日相加,而是从起始日期的下一天开始,遇到周一至周五才计数。起始日当天不计入数量,这一点和“N 个工作日之后”的日常说法一致。
单位选“周”时,1 周按 5 个工作日处理。比如从周五开始推 1 个工作周,会落在下周五;如果只按自然周加 7 天,则仍会落在周五,但中间的周六日没有被跳过。工作日模式不会识别法定节假日和调休,遇到春节、国庆或周末上班,需要自己再核对。
按“月”或“年”推算时,跳过周末的选项会被关闭。原因是跨月时“工作日”的口径会随节假日安排变化,硬把两者混在一起,结果反而不好解释。需要精确排期时,先用本工具推到目标日期,再用工作日计算器统计区间。
几个实际的推算结果
| 起始日期 | 推算方式 | 目标日期 | 说明 |
|---|---|---|---|
| 2026-01-31 | 1 个月后 | 2026-02-28(星期六) | 2 月没有 31 日,取月末 |
| 2024-01-31 | 1 个月后 | 2024-02-29(星期四) | 闰年 2 月有 29 日 |
| 2026-12-31 | 1 天后 | 2027-01-01(星期五) | 跨年后年份加 1 |
| 2026-10-28 | 100 天后 | 2027-02-05(星期五) | 跨过元旦和春节前的普通日 |
| 2026-05-31 | 3 个月后 | 2026-08-31(星期一) | 目标月有 31 日,不需要取整 |
| 2026-01-01 | 1 天前 | 2025-12-31(星期三) | 往前推时年份减 1 |
什么时候该用它
合同写着“签署后 90 天内交付”,可以直接从签署日推 90 天,得到最后期限;报销规则写“费用发生后 30 日内提交”,也可以照着推。遇到“下个季度同一天”这类说法,按月推比按天推更贴近原意。
排项目时,如果只需要跨过周末,勾选跳过周六日会得到更实际的日期;但如果中间夹着法定假日,仍要再往后顺延。把推算结果复制到排期表后,再对照当年的放假安排补一遍,通常比在聊天里反复确认更省事。
常见疑问
为什么我选“1 个月后”,结果不是下个月的同一天?
只有目标月份存在同一天时,结果才会保持日号。如果起始日是 1 月 31 日,下个月是 2 月,没有 31 日可用,就只能落到 2 月最后一天。页面会在结果下方提示发生了月末取整。
工作日模式的“后一天”从哪天开始数?
从起始日期的下一天开始数,起始日本身不计入。比如周一开始推 1 个工作日,结果是周二;周五开始推 1 个工作日,会跳过周六日,落到下周一。
能自动识别春节、国庆和调休吗?
不能。节假日安排每年公布,而且不同地区可能有差异。这里只按周一至周五判断,不把周末调休成上班日,也不会自动排除法定假日。需要精确统计请使用 工作日计算器 的自定义日期。
目标日期不合法时,工具会怎么处理?
数量和日期会先校验。数量必须是 0 到 100000 之间的整数;日期必须真实存在。如果结果落到目标月最后一天,工具会保留结果,不会报错,因为这是按自然月推算的预期行为。
Related tools