通过MCP连接 →

输入计算

数学公式

广告

结果

结果日期
2024-01-31
Wednesday
2024
1
31
星期 Wednesday
儒略日数 2,460,341

这个计算器有什么用

日期加减天数计算器能精确算出某个起始日期之前或之后第 N 天对应的公历日期。无论你想知道「从今天起 90 天后是几号」,还是「45 天前是哪一天」,这个工具都能直接给出答案,并附带星期几。它适用于任意公历日期,会自动处理每月天数不同、闰年以及跨年等情况。

日历日期的数轴,箭头表示从起始日期加减天数
加法使日期向前推移,减法则使其在日历上向后移动。

使用方法

输入起始日期(年、月、日),选择要增加还是减少天数,再填入具体的天数即可。计算器会以 YYYY-MM-DD 格式返回结果日期,并显示对应的星期几。它是一款通用的日期工具——除了采用国际通行的公历之外,不针对任何特定国家或历法做假设,全球通用。

计算原理详解

与其直接去处理每月天数不一、闰年规则复杂这些麻烦,这个工具会先把起始日期换算成儒略日数(Julian Day Number,简称 JDN)——也就是把日期表示成一个连续递增的天数序号。这样一来,加减 \(N\) 天就只是简单的整数运算:$$\text{JDN}_{out} = \text{JDN}(\text{起始}) \pm N$$算出结果后,再把它还原成年、月、日。其中儒略日数由下式计算:$$\text{JDN} = d + \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$$星期几则由 \(\text{JDN} \bmod 7\) 得出。这种方法结果精确,能避免逐天累加循环常见的误差问题。

Advertisement
流程图:将日期转换为儒略日数,加上 N,再转换回日期
先将日期转换为儒略日数,加上或减去 \(N\),再转换回日期。

实例演示

2024-01-01 为起始日期,增加 30 天。2024-01-01 对应的儒略日数是 2,460,311,加上 30 得到 $$2{,}460{,}311 + 30 = 2{,}460{,}341$$换算回日期即为 2024-01-31。由于 2024 年是闰年,计算过程会自然地把一月份的 31 天考虑在内。如果再多加一天(共 31 天),日期就会跨到 2024-02-01。

Advertisement

关键术语解释

儒略日数 (JDN)
从公元前4713年1月1日中午协调世界时起的连续整天计数(儒略历推算日期)。因为每个日历日期都映射到一个整数,加减天数变成简单的整数算术:将日期转换为其JDN,加或减去偏移量,然后转换回去。这避免了手动处理月份长度和闰年的问题。
格里高利历
当今世界大多数地区使用的民用历法,由教宗格里高利十三世在1582年引入。它定义了一个365天的年份,在特定规则下加上闰日,平均年长为365.2425天,与太阳年紧密相关。
推算格里高利历
格里高利历在其1582年引入之前应用于日期的延伸。计算器使用它以便历史或极早期的日期遵循相同的一致闰年规则,确保任何时代的JDN算术中断不了。
闰年
包含366天(含2月29日)的年份。格里高利历年份是闰年,如果它能被4整除,除了世纪年份,这些也必须能被400整除。所以2000年和2024年是闰年,但1900年和2100年不是。
从模运算得出的周日
直接从JDN使用模运算得出的周日。因为一周的日子每7天重复一次,计算 \((\text{JDN} + 1) \bmod 7\) 得到0到6的值,映射到一周的某一天(JDN 0对应星期一)。这使得计算器无需查找表就能命名任何结果日期的周日。

常见问题

能正确处理闰年吗?可以。儒略日数算法本身就把闰年和每月天数不一的情况内置考虑进去了,因此闰年里的 2 月 29 日也能准确处理。

可以跨年吗?当然可以。只要增加的天数足够多,结果就会自动跨入下一年(做减法时则会回到上一年),整个过程无需任何额外操作。

使用的是哪种历法?采用前推格里历(proleptic Gregorian calendar),也就是当今世界通用的标准民用历法。

最后更新: