日付計算(日付+日数)とは?
このツールは、基準となる日付と日数を指定するだけで、その日数を加減算した日付を求めるものです。プラスの日数を入力すれば未来の日付へ、マイナスの日数を入力すれば過去の日付へと移動します。計算の中核は世界共通のグレゴリオ暦(西暦)にもとづいており、任意で和暦(元号)のプルダウンを使えば、令和・平成などの元号で開始年を入力することも可能です。これは元号の年に一定のオフセットを加えて西暦へ換算しているだけのしくみです。初期設定は西暦なので、どの国でも同じように使えます。
使い方
まず暦(元号)を選びます(通常は「西暦」のままで構いません)。次に年を入力し、月と日を選び、加算したい日数を入力します。減算したい場合はマイナスの値を入力してください。さらに、開始日(初日)を期間の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だけ減らします。
$$\text{Result Date} = \text{JDN}^{-1}\!\left(\text{JDN}(\text{Start Date}) + \Delta\right)$$ここで
$$\left\{ \begin{aligned} \text{Start Date} &= (Y_g,\ \text{Month},\ \text{Day}) \\ Y_g &= \text{Year} + \text{Era Offset} \\ \Delta &= \text{Days to Add} - \operatorname{sign}\!\left(\text{Days to Add}\right) \end{aligned} \right.$$
計算例
開始日を2024年6月15日とし、10日を加算、初日は数えない場合を考えます。開始日はJDN 2460477に変換され、10を加えると \(2460477 + 10 = 2460487\) となり、これを日付に戻すと2024年6月25日(火曜日)になります。一方、初日を数える設定にすると実効オフセットは \(9\) となり、2024年6月24日(月曜日)が求まります。これは期間の10日目にあたります。
よくある質問
うるう年や月末・年末の繰り上がりにも対応していますか? はい。ユリウス通日(JDN)を経由して計算するため、うるう年・月末の繰り越し・年をまたぐ計算も自動的に正しく処理されます。
日数を引くことはできますか? できます。日数にマイナスの値を入力してください。
「初日を数える」とはどういう意味ですか? この設定を有効にすると、開始日そのものを期間の1日目としてカウントします。そのため、入力した日数よりも1日少なく日付が移動します。