うるう年を判定・西暦年から365日か366日か計算

うるう年を判定・西暦年から365日か366日か計算

1600年から9999年までの西暦年を、400年周期の正規グレゴリオ暦規則で判定し、年間日数と2月の日数を表示します。

入力

1600以上9999以下の整数年を入力します。

使い方

  1. 判定したい西暦年を整数で入力します。
  2. 計算ボタンを押し、判定値、1年の日数、2月の日数をまとめて確認します。
  3. 世紀年では1900年が平年、2000年がうるう年になる違いを確認します。

計算式・考え方

年Yが4で割り切れ、かつ100で割り切れない、または400で割り切れるときだけうるう年です。判定値Lをうるう年=1、平年=0とすると、年間日数=365+L、2月の日数=28+Lです。

注意事項

  • 「4で割り切れれば必ずうるう年」という簡略は世紀年で破れます。1900は4と100で割り切れますが400では割り切れないため平年、2000は400で割り切れるためうるう年です。家計表や予約表を作るときも、この例で式を検算できます。
  • うるう日は2月29日で、3月1日以降の年内日番号を1日ずらします。そのため、2月末だけでなく、年間の日数、日付の差、曜日の進み方にも影響します。本ページは判定値と一緒に2月と年間の日数を出し、後続計算の入力に使いやすくしています。
  • 「1」と「0」で表示するのは、現在のscalar結果形状を保ち、コピー後の表計算やテストで利用しやすくするためです。文言の「該当/非該当」と取り違えないよう結果ラベルに対応を明記し、同時に365日または366日という直感的な結果も併記します。
  • うるう年規則は米国海軍天文台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としていないか、歴史上の現地暦を使っていないかを確認すると切り分けやすくなります。
  • 正規グレゴリオ暦の日付専用計算です。歴史上の現地暦、時刻、時差、法的期限の特則は個別に確認してください。

よくある質問

2100年はうるう年ですか?

いいえ。4で100で割り切れますが400で割り切れないため平年です。

2000年がうるう年なのはなぜですか?

世紀年でも400で割り切れる年は例外的にうるう年へ戻すというグレゴリオ暦規則に該当するためです。

2月29日以外にうるう日はありますか?

本ページが扱う正規グレゴリオ暦では、追加日は2月29日です。うるう秒は日付ではなく時刻系の別の補正です。

入力した年月日と日数・週数は、利用者の端末内だけで計算されます。サーバーや第三者へ送信・保存せず、氏名、予約内容、住所などの個人情報を入力する欄もありません。