日付の加減計算
計算結果
計算結果の日付
- 曜日
- 水曜日
- 移動した日数
- 90 日
日数を足すのは算術ですが、月を足すのは暦の判断です。1月31日の1か月後を計算機に尋ねても、2月31日は存在しないので、答えは行き先の月の末日に丸まります。月末の丸めです。2026年なら2月28日、2024年なら2月29日です。表計算ソフトが採用している規則で、ふつうはこれが意図されています。このツールは日付を日・週・月・年でずらし、計算結果の日付、その曜日、そして実際に動いた日数を報告します。起算日そのものは調整しません。
公式
日と週の加算は正確。月と年の加算は、行き先の月に応当する日がないときはその月の末日に丸める
- 日付
- 出発点。これ自体は調整されません
- 量
- 日・週・月・年の整数。負の値にすると日付は前に戻ります
- 単位
- 日と週は長さが決まっていて、月と年は決まっていません
- 移動した日数
- 実際に動いた距離。月や年が絡むと、量と一致しなくなります
何日後か、あるいは何日前かを求めたいとき、期日を決めたいとき、定期購読の1期間がいつ終わるかを知りたいときに使います。日と週は正確なので、14日の移動は必ず同じ曜日に着地し、動いた距離はいつも量と一致します。月と年はそうではないので、1か月の移動はどこから始めるかによって28日・29日・30日・31日を動きます。移動した日数の出力が、そのどれだったかを教えてくれます。できないのは、契約が定める期間の終わり方に従うことです。たとえば「末日が営業日でなければ前倒しする」と決まっていれば、それは別の計算になります。
計算例
2026年1月31日の1か月後
- 行き先の月は2026年2月で28日までしかなく、着地すべき31日が存在しない
- そのため日の号はその月の末日に丸まり、2026年2月28日になる
- 移動した日数: 1月31日から2月28日までは28日で、31日ではない
- 曜日は結果に付いてくる: 2026年2月28日は土曜日
このページでいちばん間違えやすいのが丸めの部分です。1か月を30日として実装したツールは3月2日に着地します。
2024年1月31日の1か月後
- 2024年は4で割り切れ、100では割り切れないので、2月は29日ある
- それでも着地すべき31日は存在しないので、結果は再びその月の末日に丸まる。今度は29日
- したがって移動した日数は29日で、平年に同じ移動をしたときより1日多い
- この2つの例を並べると、丸めの行き先が「決まった日数」ではなく「その月の末日」だと分かる
同じ起算日、同じ指示で、年が違うぶんだけ1日変わります。その差が見えるのは、日付と一緒に移動した日数を報告しているからです。
2026年1月1日の90日後
- 日の加算では丸めは起きない: 1月1日に90日を足した日が、そのまま答えになる
- 2026年は1月が31日、2月が28日、3月が31日で、31 + 28 + 31 = 90。ちょうど3か月分
- したがって結果は2026年4月1日で、移動した日数は求められたとおりの90
- 1月1日は木曜日だったが2026年4月1日は水曜日。90は7の倍数ではないため
日と週は長さが決まっているので、ここで驚くことはありません。驚きが潜んでいるのは上の2つの月の例です。
適用限界
月と年は長さが決まっていないので、ある日付の1か月後とは、同じ日の号に着地すること、行き先の月が短いときはその月の末日に着地することを意味します。この丸めの規則は表計算ソフトと共通の約束で、代わりに翌月へ繰り越すツールは1日から3日ほど遅い答えを返します。ここには週末も祝日も飛ばす処理はありません。それを担うのは営業日ツールです。日付はすべて先発グレゴリオ暦で、暦の改変は適用していません。
よくある質問
- 日付に90日を足すにはどうするのか
- 暦の項目には触れず、日の号に90を足します。2026年1月1日の90日後は2026年4月1日です。1月が31日、2月が28日、3月が31日で、この3か月がちょうど90日を消費するからです。週の加算は同じ計算の7倍で、どちらも丸めは起きません。
- 1月31日の1か月後はいつか
- 平年なら2月28日、うるう年なら2月29日です。2月31日は存在しないので、3月に繰り越さず、行き先の月の末日に丸めます。表計算ソフトが使っている規則で、1か月の移動が31日ではなく28日になるのはこのためです。日本の民法にも、月や年で期間を定めた場合に応当する日がないときはその月の末日に満了する、という同じ内容の定めがあります。
- 1か月を足しても日の号は変わらないのか
- 行き先の月にその日があれば変わります。3月15日の1か月後は4月15日です。行き先の月が短いときだけその月の末日に丸まり、1月31日の1か月後は2月28日、3月31日の1か月後は4月30日になります。29日・30日・31日から始める加算で、2つの規則が分かれます。
- 日付から引くこともできるのか
- はい、量に負の値を入れてください。2026年9月19日から10日を引くと2026年9月9日になり、移動した日数はマイナス10と出るので、向きは入力だけでなく結果にも現れます。月を引くときも、足すときと同じように末日へ丸めます。
- 1か月の移動は何日か
- 28日から31日の間です。数えるのは移動した日数の出力の役目で、1月31日からの1か月は2026年なら28日、2024年なら29日です。正確な日数が物を言う場面、たとえば利息・通知期間・保証期間では、「1か月」という言葉ではなくこの数を読んでください。
参考文献
- relativedelta — 日付計算ライブラリdateutilのモジュール — dateutil project documentation
- RFC 3339: Date and Time on the Internet: Timestamps — IETF