核心答案:日期加天数先看月份天数——31/30/28/29 天逐月进位,2 月遇闰年(能被 4 整除,世纪年须被 400 整除)变 29 天。2025-01-15 + 30 天 = 2025-02-14;2025-12-20 + 20 天 = 2026-01-09(跨年)。
日期加天数算法
步骤:
- 日 + 天数,与当月天数比较
- 超出则进位到下个月,重复
- 12 月超出进位到下一年 1 月
各月天数:1/3/5/7/8/10/12 = 31 天,4/6/9/11 = 30 天,2 月 = 28(闰年 29)
口诀:一三五七八十腊,三十一天永不差;四六九冬三十整。
实例:30/90/100 天后
以 2025-03-01 为起点:
| 加天数 | 结果 | 推算 |
|---|---|---|
| +30 | 2025-03-31 | 3 月剩 30 天 |
| +60 | 2025-04-30 | +31 到 4/1,再 +29 |
| +90 | 2025-05-30 | — |
| +100 | 2025-06-09 | — |
| +365 | 2026-03-01 | 2025 非闰年 |
日期减天数
反向操作:不够减从上个月借。
2025-03-10 − 25 天:10−25 不够 → 2 月有 28 天(2025 非闰)→ 10+28−25=13 → 2025-02-13
闰年判断规则
- 能被 4 整除 → 闰年
- 但能被 100 整除 → 不是闰年
- 除非能被 400 整除 → 还是闰年
| 年份 | 闰年? | 原因 |
|---|---|---|
| 2024 | ✓ | ÷4 整除 |
| 2025 | ✗ | 不整除 4 |
| 1900 | ✗ | ÷100 整除但 ÷400 不整除 |
| 2000 | ✓ | ÷400 整除 |
工作日推算
加 N 个工作日 = 自然日中扣除周末(和节假日):
- 每周 5 个工作日,N 个工作日 ≈ N×1.4 个自然日
- 例:+10 个工作日 ≈ +14 个自然日
- 精确计算:逐日推进,遇周六日跳过
常见误区
- 2 月天数记错:先判断闰年再定 28/29 天。
- "一个月后"≠加 30 天:1 月 31 日 +1 个月是 2 月 28 日(或 3 月 3 日,看约定)。
- 跨月进位连错:+60 天要连续进位两个月,逐月扣减最稳。
- 工作日当自然日:合同写"15 个工作日内"实际是约 21 个自然日,期限规划别搞混。
用[日期推算计算器](/c/date/date-add)输入起始日期和天数,秒出目标日期与星期。