基本的考え方
2 つの日付の差は、それがどれだけ離れているか — 日・週・月・年で表します。基本単位は日です:後ろの日付から前の日付を引いて、日数で数える。他の単位(週、月、営業日)は、その日数を別の慣例で表現し直したものです。
具体例:2026 年 3 月 15 日 から 2026 年 12 月 1 日
3 月 15 日から 12 月 1 日にかけて月ごとに数えます:
- 3/15 → 3/31:16 日
- 4 月:30、5 月:31、6 月:30、7 月:31、8 月:31、9 月:30、10 月:31、11 月:30 → 244 日
- 12 月 1 日:+1
合計:261 日(開始日を除き、終了日を含み — 標準的な引き算)。
別の表現:261 日 = 37 週間と 2 日。暦では:3/15 から 11/1 まで 8 か月、さらに 16 日、つまり 8 か月 16 日。
営業日(月〜金のみ):日曜日から始まる 261 日は 185 個の平日(満週)に、最後の週の月曜と火曜が加わる — 187 営業日。
日・週・月・年 — 慣例
- 日 — 単純な引き算。唯一「正確」な単位ですが、両端を含めるか否かの計数に注意(下記)。
- 週 — 日数 ÷ 7。261 日は 37.29 週、つまり 37 週間 2 日。
- 月 — 暦月で数えます(3/15 → 4/14 が 1 か月)。月の長さは不揃いなので、「1 か月」は常に一定の日数ではありません。金融では 30 日月を使う文脈と実際/実際を使う文脈があります。
- 年 — 365 日、または閏年補正の 365.25、または区間の実際日数(金融では 30/360 など 360・365・365.25 の慣例)。
両端込みと両端を除く計数
「日曜から金曜まで」は引き算では 4 日ですが、両端を数えると 5 日です。1 日から 3 日までの滞在は 3 日ではなく 2 泊です。慣例を必ず明記してください — 契約や期限では「両日含む」で数字が 1 変わります。
タイムゾーン
「日付」は特定のタイムゾーン内で初めて意味を持ちます。東京の 6 月 12 日の会議とニューヨークの 6 月 12 日の期限は別の瞬間であり、日付境界をまたいで 2 つのタイムゾーンの「6 月 12 日」を比較すると、中間の日数がずれることがあります。計算全体で 1 つのタイムゾーンを決めて一貫して使ってください。
代わりに計算してくれるツール
日/週/月/週末の内訳が欲しければ、日付差計算機に 2 つの日付を入れると、日・週・月・年・営業日、および各日付の曜日が一括で返ります。特定のケース — この人は何歳? — には年齢計算機が終了日を「今日」に固定し、閏日も扱って年・月・日で正確な年齢を返します。エポック時間で扱う開発者向けに、Unix タイムスタンプ変換は秒数を与えます:差を 86,400 で割ると日数が得られます。いずれもブラウザ内で動作します。
よくある落とし穴
- 慣例の混用 — 「30 日」(銀行の 30/360)と実際日数は同じ日付で答えが異なります。
- 端日を忘れる — オフバイワンはコードでも契約でも最も多い日付バグです。
- 閏年 — 2024 年は 366 日。閏年の 2 月をまたぐ区間は暦の感覚より 1 日長いです。
- タイムゾーンずれ — まず UTC に揃えてから数えると「結局どちらの日か」の論争を避けられます。