日付から週番号を計算・ISO、日曜始まり、土曜始まりの第何週

日付から週番号を計算・ISO、日曜始まり、土曜始まりの第何週

西暦日付を、ISO 8601月曜始まり、日曜始まり、土曜始まりの3規約から選び、週年、週番号、週内位置へ変換します。

入力

1601年から9998年までの西暦年です。

1から12までの月番号です。年・日と組み合わせて実在日を確認します。

1から31までの日です。月末と2月29日は正規グレゴリオ暦で検証します。

ISOは月曜始まりで第1木曜を含む週を第1週とします。日曜・土曜始まりは1月1日を含む週を第1週とします。

使い方

  1. 週番号へ変換したい日付を西暦の年・月・日に分けて入力します。
  2. ISO月曜始まり、日曜始まり、土曜始まりから規約を選びます。
  3. 週年と週番号を一組で読み、必要ならISO曜日番号と週内位置も確認します。

計算式・考え方

ISOでは対象日の週の木曜日T=通算日+(4−ISO曜日)が属する年を週年とします。週年の1月4日を含む月曜を第1週開始日W1とし、週番号=floor((対象日−W1)÷7)+1です。日曜・土曜始まりでは暦年を週年とし、その年の1月1日を含む選択始曜日をW1にします。週内位置は選択始曜日から対象曜日までの0〜6日の剰余+1です。

注意事項

  • ISO週年は日付の西暦年と一致しないことがあります。2021-01-01は金曜日で、その週の木曜日が2020年にあるため、ISOでは2020年第53週です。結果を『2021年第53週』と転記すると別の週になるので、週年と週番号を必ず組にして保存してください。
  • 日曜始まりと土曜始まりは、本ページでは1月1日を含む週を第1週と定義します。これはISOの第1木曜規則とは別物で、名称だけから国や業界の標準を推定しません。利用中のカレンダー製品が週0を持つ、最初の完全な週を第1週とするなど別規約なら一致しない場合があります。
  • 選択規約は文字列を式へ渡さず、1、2、3の有限な数値選択です。1はISO月曜、2は日曜、3は土曜で、画面上は説明ラベルを表示します。自由入力のコードを実行する仕組みではなく、許可された3値の条件分岐だけで週始めを決めます。
  • ISO曜日番号は選択した週始めにかかわらず月曜=1から日曜=7です。一方、週内位置は選択始曜日を1日目として数えます。日曜始まりなら日曜が1日目、月曜が2日目となるため、二つの結果欄の番号を同じ意味として扱わないでください。
  • 年境界の検算には1月1日前後と12月31日前後を使うと効果的です。通常の日付だけで一致しても、第1週の定義差は年末年始に現れます。本ページは1601年から9998年に限定し、ISO週を決める木曜日が安全な通算日範囲に収まるようにしています。
  • ISO週日付はISO 8601-1:2019の公式ページ(iso.org/standard/70907.html)と、週日付を明示する旧版公式概要(iso.org/standard/40874.html)を2026年7月13日に照合しました。ISO分岐では月曜日を週の初日とし、その年の第1木曜日を含む週を第1週とします。
  • ISO曜日番号の月曜日=1から日曜日=7という並びは、IETFの公式RFC 3339 HTML(datatracker.ietf.org/doc/html/rfc3339)のdate-wday定義とも照合しました。日曜始まりと土曜始まりでも、表示する曜日番号自体はこのISO番号に統一しています。
  • 西暦のうるう年規則は、米国海軍天文台USNOの公式FAQ『Leap Years』(aa.usno.navy.mil/faq/leap_years)を2026年7月13日に確認しました。4で割り切れる年を基本とし、100で割り切れる年を除外し、400で割り切れる年を戻す規則です。
  • 年月日の表現範囲とグレゴリオ暦の扱いは、ISO 8601-1:2019の公式ページ(iso.org/standard/70907.html、2024年に現行性確認済み)と照合しました。この計算群は歴史上の各地域の改暦日を再現せず、同じ規則を連続適用する正規グレゴリオ暦です。
  • 対応する西暦は原則1600年から9999年です。週年の前後日まで返す2ページだけは、安全に逆変換できるよう1601年から9998年へ狭めています。範囲外を推測値へ丸めず、個々の年月日が実在するかを計算前に確認してfail-closedで停止します。
  • 入力する年、月、日、年数、週番号はすべて整数です。ブラウザの現在日時、端末の地域設定、タイムゾーン、UTCオフセット、サマータイムを自動取得しません。同じ入力なら実行した日や場所が変わっても同じ結果になり、過去の検算も再現できます。
  • 内部では1600-01-01を0とする整数通算日へ変換してから差や曜日を求めます。JavaScriptのDateオブジェクトや1970年起点のミリ秒に依存しないため、ローカル時刻への暗黙変換で日付が前後する問題を避けています。結果も年、月、日または個数のscalar値として分けて表示します。
  • 式はschema v3の許可制ASTにある加減乗除、floor、比較、条件分岐と、既存の有界Gregorian関数だけで構成します。文字列をプログラムとして実行するevalやnew Functionは使わず、外部API、CDN、fetch、XHR、WebSocketにも接続しません。入力値は利用者の端末内で処理され、サーバーへ送信・保存されません。
  • 他のカレンダーや表計算と比較するときは、暦法、週の始曜日、第1週の定義、期間の両端を含むか、基準日をどの時点として扱うかをそろえてください。同じ『第1週』『経過日数』『年齢』という名前でも規約が異なれば1日、1週、1年の差が生じます。本ページは採用規約を式説明と結果ラベルに残します。
  • 表示結果は日程整理と数値検算の補助です。法的期限、医療上の年齢、保険・年金・学校・免許の適用日、宗教行事、歴史上の現地暦を確定するものではありません。該当制度の判断が必要な場合は、所管官庁や公式規程の基準時刻、初日算入、休日繰越などの個別条件を確認してください。
  • 正規グレゴリオ暦の数値計算です。法的な年齢・期限、制度の適用日、歴史上の現地暦は公式資料で個別に確認してください。

よくある質問

1月1日は必ずその年のISO第1週ですか?

いいえ。第1木曜を含む週という条件により、前年の第52週または第53週になることがあります。

日曜始まりは米国のすべての週番号と同じですか?

保証しません。本ページは1月1日を含む週を第1週とする明示規約です。

週年とは何ですか?

週番号と組になる年です。ISOでは日付の暦年と年末年始に異なる場合があります。

選択値1、2、3を直接入力しますか?

画面では説明付きの選択肢から選びます。結果には検算用コードも表示します。

入力した年月日、週番号、年数は利用者の端末内だけで計算されます。外部へ送信・保存せず、氏名、会社名、住所などの個人情報を入力する欄もありません。