日期加减天数

计算起始日期之前或之后指定天数、周数、月数、年数或工作日数的日期,并显示星期和移动的自然日数。

更新于 已验证的示例:7

= 2026-09-29
试一试
Resulting date
Thursday, 29 October 2026
Resulting date: Thursday, 29 October 2026
星期几
Thursday
Calendar days moved
30days

Tue 29 Sep 2026 plus 30 days is Thursday, 29 October 2026.

Tue 29 Sep 2026 plus 30 days

30 calendar days: 29 Sep 2026 to 29 Oct 202630 calendar daysStartTue 29 Sep 2026ResultThu 29 Oct 2026
计算方法 S
  1. Add day numbers

    20725+30=2075520725 + 30 = 20755

    Day numbers count from 1 January 1970 in the proleptic Gregorian calendar.

  2. 结果

    Thursday, 29 October 2026, 30 calendar days later.

关于日期加减天数

Days and weeks are added to the start date's day number, a running count of days since 1 January 1970, so month lengths and leap years take care of themselves. Months and years move the month and keep the day of the month; when that day doesn't exist in the target month, the result is the month's last day, the same rule as Excel's EDATE. Business days are counted one at a time from the day after the start, stepping over the chosen weekend days.

Typical uses are due dates, return and cooling-off windows, visa and licence expiry dates and medication courses. 100 days after 15 January 2026 is Saturday, 25 April 2026, and 5 business days after Friday, 16 January 2026 is the following Friday.

Month steps can't always be undone: 31 March 2026 minus one month is 28 February, and 28 February plus one month is 28 March. Public holidays are not skipped here; the working-day deadline calculator takes a holiday list.

计算示例

31 January plus one month in a leap year

Start date
2024-01-31
Operation
Add
Amount
1
单位
月
Resulting date
2024-02-29
星期几
Thursday
Calendar days moved
29 days

核验来源:Python dateutil: date(2024,1,31) + relativedelta(months=1) = 2024-02-29 (Excel EDATE agrees)

100 days after 15 Jan 2026

Start date
2026-01-15
Operation
Add
Amount
100
单位
Days
Resulting date
2026-04-25
星期几
Saturday

核验来源:Python 3.8: date(2026,1,15) + timedelta(days=100)

Leap day plus one year

Start date
2024-02-29
Operation
Add
Amount
1
单位
年
Resulting date
2025-02-28
Calendar days moved
365 days

核验来源:Python dateutil: date(2024,2,29) + relativedelta(years=1) = 2025-02-28

31 March minus one month

Start date
2026-03-31
Operation
Subtract
Amount
1
单位
月
Resulting date
2026-02-28
Calendar days moved
-31 days

核验来源:Python dateutil: date(2026,3,31) − relativedelta(months=1) = 2026-02-28

常见问题

How do I work out the date 90 days from today?

Enter today as the start date, choose Add, type 90 and pick Days. Counting starts on the day after the start date, so 90 days from 1 January 2026 is 1 April 2026: January, February and March hold 31 + 28 + 31 = 90 days. In a leap year the same count from 1 January ends on 31 March, because February has 29 days.

What is 31 January plus one month?

28 February, or 29 February in a leap year such as 2024. A day of the month that doesn't exist in the target month is moved back to that month's last day, which is how Excel's EDATE and Python's dateutil relativedelta behave. The same rule makes 31 March minus one month 28 February 2026, and 31 August plus one month 30 September.

How do I add business days to a date?

Count forward from the day after the start date and skip each weekend day. Friday, 16 January 2026 plus 5 business days is Friday, 23 January, 7 calendar days later; 10 business days before 15 January 2026 is 1 January. Public holidays are not skipped in this calculator, whereas Excel's WORKDAY(start, days, holidays) skips any holidays you list.

Is adding one year the same as adding 365 days?

Only when the year ahead has no 29 February in it. From 15 January 2027 one year later is 15 January 2028, 365 days on, but from 1 March 2027 one year later is 1 March 2028, 366 days on, because 29 February 2028 falls in between. 29 February 2024 plus one year becomes 28 February 2025 under the month-end rule.

“日期加减天数”有多准确?

准确性取决于输入值和方法的假设。十进制运算使用50位有效数字,但估算、数值方法和源数据的精度可能较低;显示时的舍入并不能消除这些限制。 已按独立来源核验的计算示例:7。 例如,“31 January plus one month in a leap year”根据Python dateutil: date(2024,1,31) + relativedelta(months=1) = 2024-02-29 (Excel EDATE agrees)进行核验。

这种方法出自哪里?

Howard Hinnant — chrono-compatible low-level date algorithms; Microsoft Excel EDATE and WORKDAY functions (same month-end and business-day conventions).

关于此计算器

N(result)=N(start)±n(days),day=min⁡(d,days in target month)(months)N(\text{result}) = N(\text{start}) \pm n \quad (\text{days}),\qquad \text{day} = \min(d, \text{days in target month}) \quad (\text{months})

来源

  1. Howard Hinnant — chrono-compatible low-level date algorithms
  2. Microsoft Excel EDATE and WORKDAY functions (same month-end and business-day conventions)

已对照来源验证

此计算器包含 7 个已解示例,答案来自独立来源。这些示例会在测试套件中运行,你也可以在此运行验证。

相关计算器