這個計算器能做什麼
「日期加月份計算器」可以從任何起始日期出發,往後推(或輸入負數往前推)指定的整數月份,並算出精確的對應日曆日期。和「加固定天數」不同,加月份在目標月份比起始月份天數更少時,需要特別處理——而這個工具會自動幫你搞定。
使用方法
選擇起始日期,輸入要加上的月份數(想往前回推就輸入負數),即可看到計算結果。下方的明細表會列出結果的年、月、日,並在日期被調整到月底時加上提示。
公式說明
計算方式是先求出日曆的「月份索引」:(年 × 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}))$$
實際範例
起始日期為 2024-01-31,加 1 個月。目標月份是 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天。
如何確定閏年
根據格里曆,如果一年滿足以下規則,則它是閏年:
- 該年能被4整除,並且
- 它不能被100整除,除非
- 它也能被400整除。
所以2020年和2024年是閏年(能被4整除,不能被100整除)。1900年不是閏年(能被100整除但不能被400整除),而2000年是閏年(能被400整除)。這就是為什麼 \(\text{1月}\ 31 + 1\ \text{月}\) 在2023年給出2月28日,但在2024年給出2月29日。
常見問題
遇到月底會怎麼處理?如果你的起始日在目標月份中不存在,系統會自動調整到該月的最後一天。
可以往前減月份嗎?可以——只要輸入負數,例如 -3,就能回推三個月。
會考慮閏年嗎?會。系統計算每月最後一天時會自動納入閏年因素,因此在 1 月 31 日加一個月時,閏年會落在 2 月 29 日,平年則落在 2 月 28 日。