# 日付に日数を足す・引く

> 開始日から指定した日数、週数、月数、年数または営業日数だけ前後の日付を求め、曜日と暦日での移動日数を表示します。

操作できるページ：https://www.calcopenly.com/ja/datetime/add-subtract-days
分野：日付と時刻の計算機

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.

## 入力

- **Start date**
- **Operation** (選択肢：Add, Subtract)
- **Amount**
- **単位** (選択肢：Days, Weeks, か月, 年, Business days)
- **Weekend** (選択肢：Sat–Sun, Fri–Sat, Sun only)

## 結果

- Resulting date — 主な結果
- 曜日
- Calendar days moved (days)
- End-of-month adjustment

## 計算式

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

## 計算例

### 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

### Friday plus five business days

- Start date: 2026-01-16
- Operation: Add
- Amount: 5
- 単位: Business days
- Weekend: Sat–Sun
- **Resulting date: 2026-01-23**
- **曜日: Friday**
- **Calendar days moved: 7 days**
- 照合元：numpy.busday_offset('2026-01-16', 5, roll='backward') = 2026-01-23

### Ten business days before 15 Jan 2026

- Start date: 2026-01-15
- Operation: Subtract
- Amount: 10
- 単位: Business days
- Weekend: Sat–Sun
- **Resulting date: 2026-01-01**
- **Calendar days moved: -14 days**
- 照合元：numpy.busday_offset('2026-01-15', -10, roll='forward') = 2026-01-01

## よくある質問

### 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).

## 出典

- [Howard Hinnant — chrono-compatible low-level date algorithms](https://howardhinnant.github.io/date_algorithms.html)
- [Microsoft Excel EDATE and WORKDAY functions (same month-end and business-day conventions)](https://support.microsoft.com/office/edate-function-3c920eb2-6e66-44e7-a1f5-753ae47ee4f5)
