指定日より後のn番目の曜日を計算
2024年3月18日(月)より後の最初の月曜日は同じ日ではなく3月25日で、2回目は4月1日です。日付、曜日、何回目かを選ぶと、繰り返しの決まりを1つの正確な日付にできます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 日付
- 2024-03-15
- 曜日
- Monday
- N
- 3
- 結果
- 2024-04-01
- 何日後
- 17
- 基準の曜日
- Friday
- 結果の曜日
- Monday
この計算ツールは、繰り返し規則を一意の日付へ変換します。YYYY-MM-DD形式の実在するISO日付、英語の曜日、将来の何回目を求めるかをご指定ください。検索は指定日より厳密に後から始まるため、基準日と対象がともに月曜日なら、1回目は翌週の月曜日です。計算にはグレゴリオ暦の整数演算だけを使い、JavaScript Date、システム時計、ロケール、ネットワーク、乱数には依存しません。そのため、UTC基準の自動処理、テスト、予定、レポートで同じ結果を得られます。
「指定日より厳密に後」の規則をご理解ください
この機能では「厳密に後」が重要です。入力したISO日付は境界であり、結果として返されることはありません。基準日が月曜日の2024-03-18で対象も月曜日なら、1回目は2024-03-25、2回目は2024-04-01です。
曜日が異なる場合は、対象までの最小の正の日数を進み、それ以降は1回ごとに7日を加えます。これにより、「当日以降」と「当日より後」の混同を防げます。応答には正規化した基準日、標準曜日名、指定順位、結果日、経過日数、年月日が含まれます。
時刻や端末のタイムゾーンは扱わず、週末や祝日も除外しません。包含規則、営業日、祝日が必要な場合は専用機能をご利用ください。ここでは3つの入力だけで数学的に1つの答えが決まります。
有効な日付、曜日、順位をご指定ください
dateは年4桁、月2桁、日2桁をハイフンで結び、実在するグレゴリオ暦の日付にしてください。2024-02-29は有効ですが、2023-02-29は無効です。対応年は0001から9999で、結果もこの範囲内である必要があります。
weekdayにはMondayからSundayまでの英語名、またはMon、Tue、Wed、Thu、Fri、Sat、Sunを大文字小文字を問わず指定できます。解釈の揺れを避けるため、数値や翻訳済み曜日名は受け付けません。nは1から100000までの正の整数です。
不可能な日付を自動修正せず、9999-12-31を超える結果も明示的に失敗します。
決定論的なグレゴリオ暦演算で自動化できます
計算処理は、世紀年の例外を含むグレゴリオ暦のうるう年規則と各月の日数を最初に検証します。次に、閉じた式で日付を整数の日番号へ変換し、固定対応表から曜日を求めます。対象までの差は7を法として計算しますが、差がゼロなら7へ置き換え、必ず基準日より後にします。
その後、7×(n−1)を加え、最終番号を年月日に戻します。途中の日付を順番に調べないため、大きなnでも一定時間です。JavaScript Dateの生成、時計の参照、外部サービスやタイムゾーン情報の照会は行いません。
このため、ブラウザー、ワーカー、コマンドテスト、継続的インテグレーションで再現可能です。出力はタイムスタンプではなくISO民間日付です。後続システムで必要な時刻とゾーンを明示的に付けられ、隠れた前提を避けられます。
活用例
定期レビュー日を予定します
プロジェクト期限より後の3回目の金曜日を求め、ISO日付を計画フローへ保存できます。
安定したテストデータを作成します
時計を固定せず、実行環境のタイムゾーンにも依存しない決定論的な事例を生成できます。
観測日と報告日を設定します
測定日より後のn番目の曜日を求め、再現可能な監査やデータ処理に利用できます。
よくある質問
基準日が選択曜日の場合、その日を数えますか?
いいえ。 基準日より厳密に後から数えます。両方が月曜日なら、1回目は7日後です。
nにはどの値を指定できますか?
1から100000までの正の整数をご指定ください。小数、ゼロ、負数は受け付けません。
利用者のタイムゾーンを使いますか?
いいえ。 グレゴリオ暦の日付を整数で計算し、タイムゾーンやシステム時計は参照しません。
祝日や非営業日を除外しますか?
いいえ。 すべての7日間の週を数えます。営業日計算には別の機能が必要です。
ある日付から3回目の月曜日はどう求めますか?
日付を入力し、月曜日を選んで3回目を指定します。2024年3月15日(金)からなら答えは17日後の2024年4月1日です。その後の最初の月曜日が18日だからです。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/date/nth-weekday-from-date \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"2024-03-15","weekday":"Monday","n":3}'const res = await fetch("https://api.kit.forhosting.com/date/nth-weekday-from-date", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"date": "2024-03-15",
"weekday": "Monday",
"n": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/nth-weekday-from-date",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"date": "2024-03-15",
"weekday": "Monday",
"n": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/nth-weekday-from-date", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"date":"2024-03-15","weekday":"Monday","n":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"date":"2024-03-15","weekday":"Monday","n":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/nth-weekday-from-date", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"date": "2024-03-15",
"weekday": "Monday",
"n": 3
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.nth_weekday_from_date",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
ブラウザーでは無料で実行でき、APIでは正常な1件につき$0.002でご利用いただけます。
有効な日付、曜日、順位をご指定ください
必須フィールドはdate、weekday、nです。小数、ゼロ、負数、NaN、Infinityはinvalid_inputになります。正常なAPI項目は$0.002で、ブラウザー版も同じ純粋な計算処理を使います。
技術的な質問
APIリクエストの料金はいくらですか?
正常なAPI項目は$0.002です。同じ計算処理をブラウザーでは無料でご利用いただけます。