何日前はいつ?基準日から日数を戻した年月日と曜日
明示した基準日から0以上の整数日を引き、うるう年や月末をまたいだ「何日前」の年・月・日・ISO曜日番号を求めます。
計算結果
- 計算後の年
- — 年
- 計算後の月
- — 月
- 計算後の日
- — 日
- 計算後のISO曜日番号(月=1、日=7)
- —
- 1600-01-01起点の通算日
- — 日
使い方
- 過去へさかのぼる起点となる基準日を入力します。
- 何日前かを0以上の整数で入力します。
- 計算後の年・月・日・ISO曜日番号を確認し、必要な記録へ転記します。
計算式・考え方
基準日の通算日をB、「何日前」の0以上の整数をNとし、結果通算日R=B−Nです。N=0は基準日自体、N=1は前日です。Rを年・月・日に逆変換し、その日付からISO曜日番号を求めます。
注意事項
- 「何日前」は基準日を0日前とするオフセットです。基準日が2026-07-13なら1日前は7月12日、100日前は4月4日です。「基準日を1日目とする」包含的な番号付けでN番目の日を求めたいときは、本ページの引く日数へN−1を入れると定義が合います。
- 専用の「日前」ページでは、入力を0以上に限定して日付の向きを一意にしています。負の「−5日前」を暗黙に5日後と読み替えると、ラベルと実際の移動方向が食い違います。未来へ進みたい場合は日付+日数ページで正のオフセットを使い、用語と符号を一致させます。
- 年をまたぐ100日前、365日前、366日前は、基準日の位置と途中のうるう日で結果が変わります。「365日前は必ず前年の同月同日」とは限りません。本ページは年数を1減らすのではなく通算日から指定数を引き、毎年の日数差をそのまま反映します。
- 「消費期限の何日前に作業したか」「イベントの何日前から準備するか」のような目安に使えます。ただし、「事故日の90日前」など法的期間や保証条件を決めるときは、初日算入の有無、満了時刻、休日の処理が契約や制度で定められるため、公式条文と照合してください。
- うるう年規則は米国海軍天文台USNOのLeap Years(aa.usno.navy.milの公式FAQ)とNISTのLeap Seconds FAQs(nist.govのTime and Frequency Division)を2026年7月13日に確認しました。4で割り切れる年を原則とし、100で割り切れる年を除き、400で割り切れる年を戻す規則です。
- 日付の表現はISO 8601-1:2019公式ページ(iso.org、standard 70907)とISOの『ISO 8601 — Date and time format』解説を2026年7月13日に確認し、本文ではYYYY-MM-DDの年・月・日の順を使います。入力欄は可読性のため別々にしていますが、年月日の意味はこの順序で固定です。
- ISO曜日番号は月曜日=1、火曜日=2、水曜日=3、木曜日=4、金曜日=5、土曜日=6、日曜日=7です。無償で参照できるIETF RFC 3339(datatracker.ietf.orgの公式HTML)のdate-wday定義と照合しました。JavaScriptのDate.getDayが採る日曜日=0の規約とは番号が異なるため、転記時は規約名も残してください。
- 対応範囲は1600-01-01から9999-12-31までです。この間を、1582年の導入や各地域の採用日による日付の飛びを入れないproleptic Gregorian(過去にも規則を連続適用する正規グレゴリオ暦)として扱います。歴史資料の当時の現地暦、ユリウス暦、改暦時に削除された日を再現するツールではありません。
- 「1日」は連続する暦日の境界を1つ進む意味で、86,400秒の実時間をタイムゾーン上で加算する意味ではありません。時刻、UTCオフセット、サマータイム、うるう秒は入力に持たず、年月日だけを扱います。時刻間隔が必要な予約、運行、ログ解析では、IANAタイムゾーンを扱える専用ライブラリを使ってください。
- 内部では1600-01-01を0とする整数通算日へ変換し、差、加算、減算を行います。年を365日ずつ数え、4年、100年、400年ごとの補正を整数除算で加減するため、ブラウザのローカル時刻解釈や、1970年起点のミリ秒値に依存しません。通算日からの逆変換も同じ月長で確認します。
- 年・月・日はすべて整数に限定します。2月30日、4月31日、平年の2月29日など、個々の欄の上限だけでは検出できない組合せは、計算前の日付制約で拒否します。計算後の通算日が範囲外に出る場合も結果を丸めたり循環させたりせず、入力エラーとしてfail-closedに停止します。
- すべての式は許可制の式ASTと有界な日付関数だけで実行し、文字列をコードとして実行しません。eval、new Function、外部API、CDN、fetch、XHR、WebSocketは使用せず、Pythonのビルド時評価とJavaScriptのブラウザ評価で同じ整数結果になることをテストします。
- 結果を他システムと照合するときは、暦法、年の範囲、曜日番号、開始日と終了日の包含、日付の引き算の向きを合わせてください。数字が一致しない場合は、時差や丸めよりも先に、片方が終了日を数えているか、日曜日を0としていないか、歴史上の現地暦を使っていないかを確認すると切り分けやすくなります。
- 正規グレゴリオ暦の日付専用計算です。歴史上の現地暦、時刻、時差、法的期限の特則は個別に確認してください。
よくある質問
0日前はいつですか?
基準日自体です。本ページは基準日を0日前とするオフセット定義です。
負の日数を入れられますか?
入れられません。「日前」の向きを一意にするため0以上です。未来は日付+日数ツールを使います。
365日前は必ず前年の同じ日付ですか?
いいえ。途中に2月29日があるかでずれる場合があります。年数ではなく連続暦日を引いています。
入力した年月日と日数・週数は、利用者の端末内だけで計算されます。サーバーや第三者へ送信・保存せず、氏名、予約内容、住所などの個人情報を入力する欄もありません。