2つの日付の計算

日付A: =
日付B: =
項目値

コラム

1月1日から1月4日までは、3日か4日か

このツールの「日数差」は 3 日と答えます。けれども 1 月 1 日から 4 日までの旅行は「3 泊 4 日」で、カレンダーに印を付ければ 4 マスです。どちらも間違いではなく、数えているものが違います。

答え: 日付と日付の「間」を数えれば 3 日、両端の日を「マス」として数えれば 4 日です。このツールは間を数えます。

初日は数えない

法律で期間を数えるときも、初日は数えません(民法 140 条)。「1 月 1 日から 3 日間」なら 1 月 2 日から数え始め、1 月 4 日の終わりで満了します。日の途中から始まる 1 日目を 1 日と数えると、実際より長くなるためです。ただし、午前 0 時ちょうどから始まる期間は初日も数えます。

営業日数も同じで、日付 A の日は数えず、日付 B の日は数えます。滞在した日数やカレンダーのマスの数のように両端を含めた日数が要るときは、日数差に 1 を足してください。

中間日が「12:00」になるとき

中間日は、日付 A の午前 0 時と日付 B の午前 0 時のちょうど真ん中です。日数差が偶数なら、真ん中は日付の境目に来ます。奇数なら、真ん中の日の正午です。1 月 1 日から 1 月 4 日なら 3 日の半分の 1.5 日後で、1 月 2 日の 12:00 になります。ツールが時刻を付けて表示するのはこのときだけです。

両端の日を含めた期間(1 月 1 日の朝から 1 月 4 日の夜まで)の真ん中が欲しいときは、日付 B を 1 日後の 1 月 5 日にして計算します。答えは 1 月 3 日の 0 時、つまり 2 日目と 3 日目の境目です。

1月31日の1か月後

1 月 31 日の 1 か月後を 2 月 31 日とすると、そんな日はありません。プログラムの日付の計算には、はみ出した分を繰り越して 3 月 3 日(うるう年は 3 月 2 日)とするものがあります。JavaScript の Date がそうです。

民法では、月で数える期間の最後の月に同じ日が無いときは、その月の末日で満了するとしています(143 条)。「1 月 31 日から 1 か月」の期間は、初日を除いて 2 月 1 日から数え、2 月 28 日の終わりに満了します。このツールの「月数」と「年数」もこれに合わせて、1 月 31 日から 2 月 28 日までを 1 か月と数えます。同じ決め方なので、1 月 28 日・29 日・30 日・31 日のどれから数えても、2 月 28 日で 1 か月です(2026 年)。