通过MCP连接 →

输入计算

数学公式

广告

结果

结果日期
2024-02-29
年-月-日
2024
2
29
提示 日期已调整到当月最后一天

这个计算器能做什么

日期加月份计算器可以把任意一个起始日期向后推移若干个月(如果填入负数,则向前推移),并给出准确的结果日期。和单纯地加上固定天数不同,按"月"来推算日期需要特别处理一种情况:当目标月份的天数比起始月份少时该怎么办——而本工具会自动帮你搞定。

如何使用

先选择起始日期,再填入要加上的月份数(想往回推算就填负数),即可读取结果日期。下方的明细表会列出结果对应的年、月、日,并在日期被调整到月末时给出提示。

计算公式详解

计算时先得到月份序号:(年 × 12)+(月 − 1)+ N。把这个结果除以 12,商即为新的年份,余数即为新的月份。日期部分保持不变——除非它在新月份里根本不存在。举个例子,1 月 31 日加上 1 个月不可能是"2 月 31 日",于是日期会被调整到该月的最后一天(28 或 29)。这与大多数电子表格和编程类库中日期函数的处理方式一致。

$$\text{Result} = \text{Date}(Y, M+N, \min(D, \text{lastDay}(Y, M+N)))$$

$$M_{new} = ((M-1)+N) \bmod 12 + 1$$

$$D_{new} = \min(D, \text{lastDay}(Y_{new}, M_{new}))$$

1 月 31 日加一个月被调整为 2 月 28 日
当目标月份较短时,日期会回退到该月最后一个有效日(例如 1 月 31 日变为 2 月 28 日)。
日历箭头显示日期向前移动了几个月
加上 \(N\) 个月会将日期前移到之后某个月的同一天。

实例演示

起始日期为 2024-01-31,加上 1 个月。目标月份是 2024 年 2 月,而 2024 年是闰年,2 月有 29 天。由于 \(31 > 29\),日期被调整为 29,最终结果是 2024-02-29

每个月的天数

由于月份的长度不同,您开始的那一天可能在目标月份中不存在。下面的参考资料列出了公历中每个月的天数。

# 月份 天数
1 一月 31
2 二月 28(闰年29天)
3 三月 31
4 四月 30
5 五月 31
6 六月 30
7 七月 31
8 八月 31
9 九月 30
10 十月 31
11 十一月 30
12 十二月 31

四个有30天的月份是四月、六月、九月和十一月;其余的有31天,除了二月。二月是唯一长度会改变的月份:在闰年有29天,否则有28天。

闰年的判断方法

根据公历,一个年份是闰年,如果满足以下规则:

  1. 该年份能被4整除,并且
  2. 能被100整除,除非
  3. 它也能被400整除。

所以2020年和2024年是闰年(能被4整除,但不能被100整除)。1900年不是闰年(能被100整除但不能被400整除),而2000年闰年(能被400整除)。这就是为什么\(一月\ 31 + 1\)个月在2023年给出二月28日,但在2024年给出二月29日。

常见问题

遇到月末会怎样?如果起始日期的"日"在目标月份中不存在,就会自动调整到该月的最后一天。

可以减去月份吗?可以——填入负数即可,例如填 -3 就表示往回推算三个月。

能正确处理闰年吗?能。计算"当月最后一天"时会自动判断是否为闰年,因此在 1 月 31 日上加一个月,闰年会落在 2 月 29 日,平年则落在 2 月 28 日。

最后更新: