グラウンドホッグデーの日付と曜日を計算
グラウンドホッグデーは常に2月2日ですが、曜日は年によって変わります。この計算ツールはグレゴリオ暦の年を受け取り、完全なISO日付、英語の曜日名、便利な数値形式の曜日を返します。結果は固定された暦の算術で求めるため、コンピューターの時計、タイムゾーン、オンラインサービスには依存しません。個人的な確認だけでなく、再現可能なソフトウェア、出版、行事計画、歴史的な暦の処理にも安心してご利用いただけます。
無料で実行
確認する年をご入力ください
1から9999までのグレゴリオ暦の整数年を指定してください。グラウンドホッグデーは毎年同じ日付なので、計算ツールは月日を2月2日に固定して、その日が何曜日かを求めます。年だけで十分であり、場所、時刻、タイムゾーンをご指定いただく必要はありません。結果には、4桁の年を含むISO形式の日付、英語表記の曜日、月曜日を1かつ日曜日を7とするISO曜日番号、日曜日を0とする番号が含まれます。明示的な各フィールドは、画面表示や別のプログラムへの受け渡しに適しています。フォームとの互換性のため、内部処理では数字だけの文字列も受け付けますが、未入力、分数、符号、単語、範囲外の年は拒否します。この計算が回答するのは暦の問題だけです。グラウンドホッグが何を見るかを予測したり、天気を報告したり、冬が続くかどうかを判断したりするものではありません。
曜日を決定的に算出する仕組み
曜日は、坂本のアルゴリズムと同等のグレゴリオ暦の整数演算によって算出します。2月には固定の月オフセットを使い、1月と2月を算術上の前年に属するものとして扱うため、指定年を調整します。次に、通常の4年ごとのうるう年周期を加味し、うるう年ではない世紀年を除外して、400で割り切れる世紀年を復活させます。最後の剰余は0から6となり、日曜日から土曜日に対応します。同じ剰余からISO曜日値も導くため、月曜日は1、日曜日は7です。JavaScriptのDateオブジェクトは作成しません。したがって、実行環境のローカルタイムゾーンを誤って引き継いだり、古い年を一貫しない方法で解釈したり、UTC値をローカル形式にする際に日付の境界を越えたりしません。時計、ネットワーク、乱数、ロケール依存の解析、変更可能な状態も使わないため、同一の検証済み入力はAPI処理と無料ブラウザー実行環境で同一のJSONを生成します。
暦、コンテンツ、自動処理で結果をご活用ください
応答は、人にもソフトウェアにも使いやすい構成です。編集者は、毎年のグラウンドホッグデー記事を公開する前に曜日を確認できます。学校や博物館では、暦を手作業でめくらずに活動予定へ正しい曜日を記載できます。イベントアプリはISO日付を安定したキー、曜日名を表示文字列として利用でき、分析コードはいずれの数値規則でも結果を分類できます。この行事は必ず2月2日なので、計算範囲は意図的に明確に限定されています。振替規則を追加せず、平日に置き換えず、週末に当たっても日付を移動しません。似た名称の地域行事も対象外です。自動利用では各リクエストが1年分に相当し、料金は$0.002です。ブラウザー版はAPIを呼び出さず対話的にご利用いただけます。文章から日付を再構成せず、返されたISO日付を検証して保存してください。また、月曜日から日曜日までの国際番号方式に従うシステムとの連携にはISO曜日フィールドをお選びください。
活用例
毎年の行事を計画する
人員、営業時間、前後の週末行事を決める前に、2月2日が何曜日かをご確認いただけます。
季節向けコンテンツを準備する
記事、ニュースレター、授業用資料、ソーシャルメディアの予定表に正しい日付と曜日を挿入できます。
カレンダーソフトへ登録する
安定したISO日付と数値の曜日フィールドを、予定、報告、保存の処理でご利用いただけます。
よくある質問
グラウンドホッグデーは何月何日ですか?
常に2月2日です。指定した年によって、計算ツールが返す曜日が決まります。
週末の場合は日付が移動しますか?
いいえ。常に2月2日を返し、振替日や休日の観測規則は適用しません。
曜日はどのように求めますか?
うるう年と世紀年の規則を含む、決定的な先発グレゴリオ暦の整数演算を使用します。
利用者のタイムゾーンを使いますか?
いいえ。UTCに基づく暦フィールドだけを扱い、ローカル時計、タイムゾーン、Dateオブジェクトは参照しません。
APIリクエストの料金はいくらですか?
1年が1項目に相当し、APIリクエスト1回につき$0.002です。ブラウザー版は対話的にご利用いただけます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/date/groundhog-day \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"year":2026}'const res = await fetch("https://api.kit.forhosting.com/date/groundhog-day", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"year": 2026
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/groundhog-day",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"year": 2026
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/groundhog-day", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"year":2026}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"year":2026}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/groundhog-day", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"year": 2026
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.groundhog_day",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
year_min | 1 |
year_max | 9999 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |