2つの日付間の実営業日数を土日・祝日を除外して計算
2026年7月1日から10日までは、週末と3日の休日を除くと営業日は7日です。両端を含む2つの日付の間の平日を数え、自社の休業日を差し引けます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 開始
- 2026-07-01
- End
- 2026-07-10
- 祝日
- 2026-07-03, 2026-07-04, 2026-07-03
- 正味の営業日数
- 7
- 暦日数
- 10
- 除外した祝日
- 1
この計算ツールは、明示された2つのISO暦日について、月曜日から金曜日までを数え、指定された平日の祝日を差し引きます。開始日と終了日の両方を含むため、監査可能な工程表、SLA、請求期限、人員レポートに利用できます。日付の順序を逆にすると、絶対値を保ったまま結果が負になります。システム時計や現地タイムゾーンではなく純粋なグレゴリオ暦演算を使うため、常に同じ結果を得られます。
期間と方向を明確に指定します
startとendには、厳密なYYYY-MM-DD形式の実在する日付を指定してください。期間は両端を含みます。 同じ月曜日を開始日と終了日にすると1営業日です。金曜日から月曜日までなら、金曜日と月曜日を数え、土曜日と日曜日は数えません。
入力順が方向を決めます。startがend以前なら結果は正または0です。startがendより後なら、同じ両端包含期間を評価して2つの数値の符号を反転します。
したがって日付を入れ替えても絶対値は変わりません。日付は補正せず厳密に検証します。先発グレゴリオ暦の0001年から9999年まで対応します。
土日と指定祝日を重複なく除外します
期間内の月曜日から金曜日は最初に営業日として扱い、土曜日と日曜日は自動的に除外します。任意のholidays配列を使うと、国別データベースの変更や地域選択の誤りに依存せず、組織固有の休業日を除外できます。各祝日は開始日や終了日と同じ厳密なISO形式で指定してください。
期間外の祝日は結果に影響しません。土日の祝日も、すでに除外済みなので再度差し引きません。同じ祝日が複数回入力されても1件にまとめます。
振替休日を含め、組織で実際に採用する日付をご指定ください。法定暦、地域行事、宗教行事、社内休業日は自動推定しません。
業務システムで再現可能な結果を利用します
実装はグレゴリオ暦の年、月、日に対する整数演算だけを行います。JavaScriptのDateコンストラクター、システム時計、タイムゾーン、ネットワーク、乱数は一切使いません。どの国、ブラウザー、エッジノードで実行しても同じオブジェクトが返ります。
この安定性により、タイムスタンプ方式で23時間または25時間の日が生じ得る夏時間切替時のずれを防げます。保存した入力だけで過去の結果を再現することも可能です。定期処理では、祝日一覧をその根拠となる規程の版とともに保存し、入力と結果も記録してください。
無料のブラウザー版も同じ純粋な計算処理を使うため、自動化前の例示確認に適しています。
活用例
SLA期間を測定する
問い合わせの開始から解決までの営業日を、担当チームの休業日を除いて数えます。
納期差を監査する
日付を逆にすると符号だけが変わる方向付きの値で、2つのマイルストーンを比較します。
金融期限を計算する
請求や決済の期間について、適用する銀行休業日を指定して平日数を算出します。
よくある質問
開始日と終了日は含まれますか?
はい。 両端とも期間に含まれ、平日で祝日一覧にない場合は営業日として数えます。
結果が負になるのはなぜですか?
startがendより後の場合、両端を含む日数に負の符号を付けます。日付を入れ替えると絶対値を保って符号だけが変わります。
国の祝日を自動で読み込みますか?
いいえ。 隠れた地域依存を避け、結果を再現できるよう、除外する正確な日付をご指定ください。
タイムゾーンや夏時間は結果に影響しますか?
いいえ。 UTCの意味に沿った純粋なグレゴリオ暦演算を使い、現地時間やシステム時計を参照しません。
休日が週末に当たる場合や、同じ休日を2回入れた場合はどうなりますか?
結果は変わりません。土曜日と日曜日はもともと除外され、重複した休日は1回だけ差し引かれます。2026年7月の例では、4日と重複した3日で減るのは1日だけです。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/date/net-workdays-between \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start":"2026-07-01","end":"2026-07-10"}'const res = await fetch("https://api.kit.forhosting.com/date/net-workdays-between", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start": "2026-07-01",
"end": "2026-07-10"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/net-workdays-between",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start": "2026-07-01",
"end": "2026-07-10"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/net-workdays-between", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start":"2026-07-01","end":"2026-07-10"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start":"2026-07-01","end":"2026-07-10"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/net-workdays-between", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"start": "2026-07-01",
"end": "2026-07-10"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.net_workdays_between",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_holidays | 10000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
期間と方向を明確に指定します
この規則は符号付きのcalendar_daysにも反映されるため、連携結果を確認しやすくなります。2月30日、13月、ゼロ埋め不足、タイムスタンプ、地域固有形式は、もっともらしい別の日付へ変換せずinvalid_inputになります。
土日と指定祝日を重複なく除外します
応答のexcluded_holidaysは、期間内の平日を実際に除外した一意の祝日だけを数えます。そのため、土日だけを除いた値との差を説明できます。日付を逆順にしても祝日除外は対称で、この項目は符号なしのまま、net_workdaysが方向を表します。
業務システムで再現可能な結果を利用します
符号付きの差にはnet_workdays、両端を含む期間の確認にはcalendar_days、監査証跡にはexcluded_holidaysをご利用ください。API料金は1リクエストあたり$0.002で、1つの完全な期間計算を1項目として扱います。
技術的な質問
重複した祝日や土日の祝日はどう扱いますか?
重複は除去し、土日の祝日は再度差し引きません。excluded_holidaysには期間内の一意の平日祝日だけを表示します。
APIリクエストの料金はいくらですか?
成功したAPIリクエストは1回$0.002です。同じ再現可能な計算をブラウザーでは無料で実行できます。