日付差計算機

任意の2つの日付の差を、年・月・日と各種合計で正確に計算します。

使い方

開始日と終了日を選ぶと、本ツールは2つの方法で差を返します。1つは「3年7か月12日」のようなカレンダー的な表現、もう1つは「日数・週数・月数」の合計値です。前者は「付き合って3年4か月」のような日常的な言い方に合い、後者はプロジェクト計画、契約期間、別の計算式に1つの数値として渡したい場面で役立ちます。

計算式

年 = 終了.年 − 開始.年 月 = 終了.月 − 開始.月 日 = 終了.日 − 開始.日 日 < 0 の場合:月 -= 1、日 += 前月の日数 月 < 0 の場合:年 -= 1、月 += 12

総日数は2つの日付のミリ秒差を 86,400,000(ms/日)で割って floor を取ります。週数 = floor(日 / 7)。総月数 ≈ 年 × 12 + 上のカレンダー計算の月。うるう年や夏時間の切り替えはJavaScriptのDate演算が処理します。終了時刻が開始時刻より1秒でも前なら、想定より1日少なくカウントされる点に注意してください。

計算例

  • 開始日 2000年1月1日、終了日 2024年4月28日。
  • 年 = 2024 − 2000 = 24。月 = 4 − 1 = 3。日 = 28 − 1 = 27。繰り下げ不要。
  • 結果:24年3か月27日。総日数 ≈ 8,884日。総週数 ≈ 1,269週。総か月数 ≈ 291か月。

よくある質問

年/月/日の内訳と思っていた総日数が一致しないのはなぜですか?

月によって日数が異なるためです(「1か月」は28〜31日)。年/月/日の内訳はカレンダー的な数え方(会話で使う言い方)に従い、総日数は2つの日付のミリ秒差を86,400,000で割った素直な値です。どちらも正しく、答えている問いが違うだけです。

時間や秒単位で差を取得できますか?

対応していません。日付入力は日単位の精度のため、それより細かい単位を出すと誤解を招くからです。必要な場合は総日数を掛け算してください(総時間 = 日 × 24、総秒 = 日 × 86,400)。日付+時刻のバリアントは将来追加するかもしれません。

なぜ「開始日は終了日以前である必要があります」と表示されるのですか?

負の経過時間は本ツールでは意味を持たないためです。「Xはどれくらい前か」を知りたい場合は、日付を入れ替えて古い方を上に入力してください。数学的にはどちらでも計算できますが、UIではマイナス値は表示しません。

関連計算機