指定日までの完全な週末回数を計算
指定日までの週末計算機は、基準日から目標日までの両端を含む期間内に、土曜日と日曜日が両方とも収まる週末の数を求めます。片方の曜日しか含まれない週末を混ぜないため、計画に使いやすい結果になります。YYYY-MM-DD形式でグレゴリオ暦の日付を2つ入力してください。過去と未来のどちらの目標日にも対応し、方向、両端を含む日数、再現可能な週末数を表示します。
無料で実行
処理はブラウザ内で完結します。ファイルは送信されません。無料でご利用いただけます。
完全な週末として数える条件
この計算機では、一般的な月曜日から金曜日までの勤務週に続く土曜日と日曜日の組を1つの週末とします。基準日と目標日で作られる、両端を含む期間内に2日とも入っている場合だけ数えます。たとえば、期間が土曜日に終わる場合、その翌日の日曜日は範囲外なので、その週末は対象になりません。日曜日から始まる期間でも、直前の土曜日との組は除外されます。一方、土曜日に始まり日曜日に終わる期間には、完全な週末がちょうど1つ含まれます。この境界の扱いにより、一部しか使えない休日期間を、丸2日使えるかのように示すことを防げます。金曜日、祝日、地域の記念日、土日以外を休日とする慣習は計算に含めません。入力した両方の日付自体は範囲に含めて判定します。つまり、指定した2つの日付の間に、土曜日と日曜日が完全に収まる組がいくつあるかを明確に答えます。
日付の入力方法と結果の見方
基準日と目標日は、年を4桁、月と日をそれぞれ2桁にした厳密なYYYY-MM-DD形式で入力してください。実在するグレゴリオ暦の日付を検証するため、2月30日のような不可能な値を別の月へ自動補正せず、入力エラーとして扱います。目標日は基準日より後でも前でも、同じ日でもかまいません。完全な週末の数は対称なので、同じ2つの日付を入れ替えても数は変わりません。方向の項目には、入力した基準日から見て目標日が未来、過去、同日のいずれかが示されます。確認しやすいように、両端を含む暦日数も返します。現在の日付を自動では使用しません。今日からのカウントダウンを求める場合は、基準日に今日の日付を明示してください。そうすることで、保存したリクエストを後から実行しても、意味が変わらず再現できます。
実際の計画で回数を活用する方法
完全な週末の数は簡潔な計画指標ですが、実際には活動ごとの条件と組み合わせてご利用ください。旅行では、数えられた各組が期間内に完全に収まる土曜日と日曜日を表します。金曜日の夜や月曜日の朝の移動時間は、この値には含まれません。プロジェクトでは、節目までに確保できる中断のない週末作業や休養の機会を見積もれますが、勤務時間への換算は行いません。イベントでは、候補期間が週末の途中で始まったり終わったりする場合でも、同じ基準で比較できます。計算には日付の値だけを使い、タイムゾーン、時刻、夏時間の切り替え、ネットワーク、端末の現在日付には依存しません。そのため、同じ入力ならブラウザーでもAPIでも同じ結果になります。APIの1リクエストは$0.002で、ブラウザー版では同じ決定的な処理を無料でローカル実行できます。
活用例
旅行期間を計画する
予約日、出発日、帰着日の間に、完全な土日の組がいくつ入るか確認できます。
プロジェクトの週末数を見積もる
公開、提出、改装、試験などの期限までに使える完全な週末を数えられます。
イベント期間を比較する
境界の土曜日や日曜日を完全な週末と誤認せず、複数の日程候補を比較できます。
よくある質問
基準日と目標日も期間に含まれますか?
はい。両方の境界日を含めますが、土曜日と日曜日がともに期間内にある場合だけ週末として数えます。
目標日が基準日より前の場合はどうなりますか?
同じ日付範囲を計算し、方向を過去として示します。両端を入れ替えても週末数は変わりません。
土曜日に終わる期間では、その週末を数えますか?
いいえ。翌日の日曜日が範囲外なので、その土日の組は完全な週末になりません。
祝日や地域独自の休日も含まれますか?
いいえ。週末は土曜日と日曜日の組だけを指し、祝日や地域独自の休業日は考慮しません。
タイムゾーンや夏時間は結果に影響しますか?
いいえ。時刻、タイムゾーン、夏時間の切り替えを使わず、暦の日付だけで計算します。
APIリクエストの料金はいくらですか?
APIは1リクエストあたり$0.002です。ブラウザー版では同じ決定的な計算を無料で実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/date/weekends-until \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"reference_date":"2026-08-12","target_date":"2026-09-07"}'const res = await fetch("https://api.kit.forhosting.com/date/weekends-until", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"reference_date": "2026-08-12",
"target_date": "2026-09-07"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/weekends-until",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"reference_date": "2026-08-12",
"target_date": "2026-09-07"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/weekends-until", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"reference_date":"2026-08-12","target_date":"2026-09-07"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"reference_date":"2026-08-12","target_date":"2026-09-07"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/weekends-until", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"reference_date": "2026-08-12",
"target_date": "2026-09-07"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.weekends_until",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |