什么是日期加减天数计算器?
这个工具会根据你输入的起始日期和天数,自动算出推算后的日期。输入正数会把日期往后推;输入负数则往前回退。核心算法基于全球通用的公历(格里高利历),因此在哪里使用结果都一致。此外,还提供一个可选的「年号」下拉框,方便你用日本年号(如令和、平成)来输入起始年份——它只是把年号年份加上一个固定的偏移量,换算成公历年份。默认采用公历/西历,对绝大多数用户来说直接用即可。
如何使用
先选择历法年号(一般情况下保持「公历/西历」即可),输入年份,选择月份和日期,再填入要加上的天数(想做减法就填负数)。然后决定首日(起始日)是否算作整个区间的第 1 天。结果会显示推算出的新日期及对应的星期几。
计算公式
先把日期转换成儒略日数(JDN):设 \(a = \lfloor (14 - \text{月})/12 \rfloor\),\(y = \text{年} + 4800 - a\),\(m = \text{月} + 12a - 3\),则
$$\text{JDN} = \text{日} + \left\lfloor \frac{153m + 2}{5} \right\rfloor + 365y + \left\lfloor \frac{y}{4} \right\rfloor - \left\lfloor \frac{y}{100} \right\rfloor + \left\lfloor \frac{y}{400} \right\rfloor - 32045$$把天数偏移量加到 JDN 上,再把结果换算回日历日期即可。如果选择计入首日,实际偏移量会在推算方向上减少 1 天。
$$\begin{gathered} \text{Result Date} = \text{JDN}^{-1}\!\left(\text{JDN}(\text{Start Date}) + \Delta\right) \\[1.5em] \text{where}\quad \left\{ \begin{aligned} \text{Start Date} &= (Y_g,\ \text{Month},\ \text{Day}) \\ Y_g &= \text{Year} + \text{Era Offset} \\ \Delta &= \text{Days to Add} \end{aligned} \right. \end{gathered}$$
实例演示
以 2024-06-15 为起点,加 10 天,且不计入首日。起始日期换算为 JDN \(2460477\),加 10 后得到 \(2460477 + 10 = 2460487\),再换算回日历即为 2024-06-25,星期二。如果选择计入首日,实际偏移量变为 9,得到 2024-06-24(星期一)——也就是整个区间的第 10 天。
常见问题
能处理闰年和跨月、跨年吗?可以。通过儒略日数往返换算,闰年、月末进位以及跨年边界都会被自动正确处理。
可以做减法吗?可以——把天数填成负数即可。
「计入首日」是什么意思?启用后,起始当天本身就算作区间的第 1 天,因此实际推算的天数会比你输入的数字少 1 天。