🧰 UtlKit

日付計算機の使い方: 日, 週, 月, 年の加減算と 2 つの日付の正確な日数差をブラウザ内で

2 つのモード: 開始日付に日, 週, 月, 年を加算または減算, または 2 つの日付の差を正確な日数にし, その日数から週, 月, 年を導く. 全てブラウザ内で計算.

日付計算機には 2 つのモードがあります. 加減算モードは開始日付, 動作, 数量, 単位を受け取り, 1 行を印字します: 開始日付, 符号, 数量, 単位, そして曜日から月名までを完全に広げた着地点の日付. 日付差モードは 2 つの日付を受け取り, 2 者の間の正確な日数と, その日数から導かれる週, 月, 年を印字します. 全数字はブラウザ内の Date オブジェクトから直接計算され, バックエンドも API 呼び出しもありません. 日付計算機で始めて, 既定をそのままにします: 開始日付に 2026-09-24, 動作は加算, 単位は日, 数量に 30 と入力.

加減算モードの結果行

結果行は, 開始日付, 符号, 数量, 単位, 等号, 着地点の日付, と読めます. 開始日付は生の ISO 値のまま印字され, 着地点の日付は曜日, 月名, 日を含めてページ言語で広げられます. 例の実行は 2026-09-24 + 30 日 = 2026年10月24日土曜日 と印字します. 同じ実行はドイツ語ページで Samstag, 24. Oktober 2026, 英語ページで Saturday, October 24, 2026, 中国語ページでは 2026年10月24日 に着き, 曜日は中国語表記で続きます. 着地点の日付は固定テンプレートではなくブラウザのローカルデータで整形されるためです. 動作の選択は符号を反転させ, 2026-09-24 から 14 日引くと 2026年9月10日木曜日 になります. 結果横のコピーボタンは 1 行全体をクリップボードに入れます.

4 つの単位

単位の選択は 日, 週, 月, 年 を出し, 2 つの組は挙動が違います. 日と週は日数算術です: 週は先に日に換算され, 5 週は 35 日として入ります. 2026-09-24 に 5 週加えると 2026年10月29日木曜日 に着きます. 月と年は暦算術です: 月または年のフィールドを動かし, 日を保つため, 2026-09-24 に 3 か月加えると 2026年12月24日木曜日 に着きます. 数量は算術の前に上限までクリップされます: 3650 日, 520 週, 120 か月, 10 年, 同じ 10 年の地平の 4 つの表現. 上限を超える値は頭が切られ, 3651 日は 3650 日として入り, エラーにはなりません.

月と年のオーバーフロー

暦算術は日を保ち, 目標月にその日がないときは, 余った日数が翌月へ溢れます. 2026年1月31日 に 1 か月加えると, 2026 年の 2 月は 28 日なので, 余った 3 日が結果を 2026年3月3日火曜日 に着かせ, 2 月 28 日 にはなりません. 同じ開始は 2024 年なら 3 月 2 日 (土曜日) に着き, あの年の 2 月が 29 日あるためです. 年の加算は同じ規則を年フィールドに適用します: 2024年2月29日 に 1 年加えると, 2025 年の 2 月に 29 日がないため, 2025年3月1日 (土曜日) に着きます. オーバーフローは減算方向でも起こります: 2026年3月31日 から 1 か月引くと 2026年3月3日 (火曜日) に着き, 一方 2026年1月31日 から 1 か月引くと, 12 月に 31 日があるため, 2025年12月31日 (水曜日) にそのまま着きます. 結果行は常に計算された日付を印字するため, オーバーフローは黙ってではなく見えます. 未来日付ガイドは同じ規則を期限日や目標日付の質問に適用します.

日付差モード

日付差モードは 2 つの日付を受け取り, 2 者の間の絶対ミリ秒差を計算するため, 入力の順番は無関係です. 日数はその差を 86400000 ミリ秒で割って四捨五入したもので, 行の中で唯一正確な数字です. 週, 月, 年は日数を固定の除数 7, 30.44, 365.25 で割り, それぞれ切り捨てて導かれます. 2024-01-01 から 2026-07-01 の実行は 912 日 = 130 週 ≈ 29 月 ≈ 2 年 と印字します. 近似値に意味があります: 暦で数えると 2024年1月1日 から 2026年7月1日 はちょうど 30 か月ですが, 912 を 30.44 で割ると 29.96 で, 切り捨てて 29 になります. つまり月の数字は日数の換算であり, か月数のカウントではありません. 短い区間, 2026-09-24 から 2026-12-25, は 92 日 = 13 週 ≈ 3 月 ≈ 0 年 と印字します.

日付の解析

日付入力からは YYYY-MM-DD の生の文字列が返り, ツールは文字列を解析する代わりに年, 月, 日コンポーネントでローカル真夜中に Date を組みます. 日付だけの文字列を解析すると UTC 真夜中となり, UTC 以西のどのタイムゾーンでも 1 日早読みになるためです. コンポーネントから日付を組むことで, 2026-09-24 はユーザー自身のタイムゾーンでも 2026-09-24 のまま残り, 2 つの日付の日数はユーザーの所在地に依存しません.

何ではないか

日付計算機は年齢計算機ではありません. 終了日が今日に固定され, 答えが歳, か月, 日の年齢になるあの 1 ケースには, 年齢計算機がその分解を実行します. エポック秒数での同一区間では, Unixタイムスタンプ変換が日付を整数に書き直し, 日数は差を 86400 で割った結果です. そして営業日は数えません: 両モードとも暦日を数え, 週末も祝日も含みます. 日付差の営業日側については, 日付差ガイドが月曜から金曜の規則と境界ケースを扱います.

関連ツール

よくある質問

日付計算機は API やサーバーに接続しますか?

いいえ. ツールは各日付入力をローカル真夜中の Date に解析し, ブラウザの Date メソッドで日, か月, 年の算術を行い, ブラウザの Intl データでページ言語の着地点日付を整形します. 日付差モードはミリ秒の減算 1 回と割り算 4 回です. 入力した内容はページの外に出ません.

なぜ 1 月 31 日 に 1 か月加えると 3 月 3 日着で, 2 月 28 日 ではないのですか?

月加算は日を保ち, 目標月にその日がないときは, 余った日数が月末の最終日にクリップされる代わりに翌月へ溢れます. 2026 年の 2 月は 28 日なので, 1 月 31 日 に 1 か月加えた 2 月末の 3 日後は 3 月 3 日です. 同じ開始は 2 月が 29 日ある 2024 年は 3 月 2 日着, 2 月 29 日 に 1 年加えた 非閏年は 3 月 1 日着です. 結果行は計算された日付を印字するため, オーバーフローは確認できます.

日付差モードで月と年は近似に見えるのに, 日が正確なのはなぜですか?

導き方が違うからです. 日数はミリ秒差を 86400000 で割って四捨五入したもので, 正確です. 週, 月, 年は日数を固定の 7, 30.44, 365.25 で割り切り捨て, 日数の換算であり暦のカウントではありません. だから 912 日は 130 週, 約 29 か月, 約 2 年と印字されますが, 暦で数えた 2024年1月1日 から 2026年7月1日 はちょうど 30 か月です.

日付入力はどのタイムゾーンで読み取られますか?

ご自身のタイムゾーンです. ツールは ISO 文字列を解析する代わりに, 年, 月, 日コンポーネントでローカル真夜中に各日付を組みます. 日付だけの文字列は UTC 真夜中として解析され, UTC 以西では 1 日早読みになるためです. 2 つの日付の日数はどのタイムゾーンでも同じで, 着地点日付はページ言語で広げられます.

日数差に週末や祝日は含みますか?

含みます. 両モードとも暦日を数えるため, 月曜から月曜の区間は 7 日で, 間に週末があってもありません. 平日のみを数える, 公共祝日を除く, は別の規則で, 独自の境界ケースがあります. そのバージョンの問題は日付差ガイドが扱います.

関連記事