週番号から日付を計算・ISO、日曜始まり、土曜始まりの開始日と終了日
週年、週番号、週始め規約を入力し、その週の開始日と終了日を正規グレゴリオ暦の年月日へ変換します。
計算結果
- 選択規約(1=ISO、2=日曜、3=土曜)
- —
- 週の開始年
- — 年
- 週の開始月
- — 月
- 週の開始日
- — 日
- 週の終了年
- — 年
- 週の終了月
- — 月
- 週の終了日
- — 日
- 開始日のISO曜日番号
- —
- 終了日のISO曜日番号
- —
使い方
- 週番号と組になる週年を西暦で入力します。
- 第何週かを1から54の整数で入力し、ISO、日曜、土曜の始曜日規約を選びます。
- 計算された開始年月日と終了年月日を、年をまたぐ可能性も含めて確認します。
計算式・考え方
ISOでは週年Yの1月4日を含む月曜日をW1とし、日曜・土曜規約ではY年1月1日を含む選択始曜日をW1とします。第n週の開始通算日=W1+7(n−1)、終了通算日=開始+6です。ISOでは開始+3日の木曜日がY年に属すること、他の2規約では開始日がY年12月31日以前であることを確認し、存在しない週番号を拒否します。
注意事項
- ISOの2020年第53週は2020-12-28から2021-01-03です。開始日と終了日が別の暦年になるのは異常ではありません。週年は7日間の全日付が属する年ではなく、ISOならその週の木曜日が属する年を示します。出力した年月日を保存するときも、入力した週年を開始年へ上書きしないでください。
- 日曜・土曜始まりでは1月1日を含む週を第1週とするため、週の開始日は前年12月になる場合があります。また、年末の端数配置によっては第54週が存在します。本ページは上限54を入力可能にしたうえで、該当年に実在するかを式で検証し、存在しない番号を黙って翌年へ送らない設計です。
- 逆変換の結果は必ず連続する7暦日です。営業時間や勤務週の開始時刻は扱わず、開始日の0時から終了日の暦日までという時刻なしの範囲を返します。夜勤週、タイムゾーンをまたぐ週、サマータイムの実時間差が必要な用途では別の日時ライブラリが必要です。
- 日付から週番号へ変換するページとの往復検算ができます。規約と週年を変えず、出力範囲内の任意の日を再変換すれば同じ週番号になります。合わない場合は、週始めの選択、ISO週年と暦年の取り違え、第1週を決める規則の順に確認してください。
- 入力年を1601年から9998年に限定するのは、週の先頭が前年12月、末尾が翌年1月へ出ても通算日から安全に年月日へ戻すためです。端で無効なシリアル値を関数へ渡さず、出力範囲を暗黙に切り詰めないための有界化です。
- 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年の差が生じます。本ページは採用規約を式説明と結果ラベルに残します。
- 表示結果は日程整理と数値検算の補助です。法的期限、医療上の年齢、保険・年金・学校・免許の適用日、宗教行事、歴史上の現地暦を確定するものではありません。該当制度の判断が必要な場合は、所管官庁や公式規程の基準時刻、初日算入、休日繰越などの個別条件を確認してください。
- 正規グレゴリオ暦の数値計算です。法的な年齢・期限、制度の適用日、歴史上の現地暦は公式資料で個別に確認してください。
よくある質問
ISOの第53週は毎年ありますか?
ありません。年により52週または53週で、存在しない番号は入力エラーになります。
第54週は誤りですか?
ISOでは存在しませんが、本ページの日曜・土曜始まりで1月1日含有週を第1週とする規約では年により存在します。
開始日が前年になることはありますか?
あります。第1週が1月1日を含むよう前の週始めまで戻るためです。
週の終了日は開始日を含めて何日後ですか?
6日後です。開始日と終了日を含めると連続7日です。
入力した年月日、週番号、年数は利用者の端末内だけで計算されます。外部へ送信・保存せず、氏名、会社名、住所などの個人情報を入力する欄もありません。