プロジェクト営業日計算
2026年7月6日(月)から7月10日(金)までの営業日は5日で、7月8日を祝日にすると4日になります。開始日、終了日、休業日を入れるだけで合計が分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 開始
- 2026-07-06
- End
- 2026-07-10
- 営業日数
- 5
- 暦日数
- 5
- 週末の日数
- 0
- 除外した祝日
- 0
プロジェクトの日程は、ほぼ決して生の暦日そのものではありません。契約書がキックオフから三十営業日を約束する場合や、顧客が二つのマイルストーンの間に請求可能な日が何日あるか尋ねる場合、週末と祝日は二つのISO日付を素朴に引き算した結果を静かに歪めます。このプロジェクト営業日計算機は、プロジェクトの開始日・終了日と任意の祝日リストを受け取り、それらの祝日を除いたあとに残る月曜日から金曜日までの包含的な日数を返します。
この計算機におけるプロジェクト営業日の意味
プロジェクト営業日とは、グレゴリオ暦上で月曜日・火曜日・水曜日・木曜日・金曜日のいずれかに該当し、かつ任意のholidays配列に載っていない日のことです。範囲は包含的です。 開始日が平日で祝日でなければプロジェクト期間の一日目として数えられ、終了日も同様に営業日であれば同じく数えられます。土曜日と日曜日は、数か月にわたる案件の中にあっても決して数えません。
週末に当たる祝日は合計をさらに変えません。それらの日はすでに週末として除外されているからです。平日に当たる祝日だけが営業日の合計を減らし、その日付は応答のholidays一覧に現れるため、監査担当者はどの非稼働の平日が適用されたかを正確に確認できます。
アルゴリズムは開始から終了まで各市民日を純粋な算術で歩みます。JavaScriptのDateオブジェクトは構築されないため、どのWorker地域でもオフライン試験でも答えは同一です。
入力のしかたと結果の見方
holidaysは同じ形式の日付文字列の任意配列です。週末以外の休業がない場合は省略するか空配列を渡してください。利便性のための別名も受け付けます。
逆転したプロジェクト期間はほぼ常にデータ入力の不具合であり、表面化する価値があるからです。各日付は実在するグレゴリオ日として検証され、二月二十九日はうるう年のみ有効です。したがって2023-02-29は拒否され、2024-02-29は受理されます。
例:start 2026-07-06(月)とend 2026-07-10(金)で祝日なしなら営業日五・暦日五・週末零です。同じ週でholidaysに2026-07-08があれば営業日四とholidaysに一件です。
プロジェクト営業日の数え方が役立つ場面
デリバリーチームは、契約上の営業日期間を暦の終了日に翻訳するときや、キックオフとステータスレビューの間にすでに何日分の請求可能日が経過したかを測るときに、プロジェクト営業日計算機を使います。スプリントを計画するプロダクトマネージャーは、地域ごとに一度列挙した会社の祝日を無視した包含的な平日カウントを必要とします。
財務とプロフェッショナルサービス運用は、顧客ごとにデスクトップの表計算を開かずに、請求期間の理論上の最大営業日にタイムシートを突き合わせます。
活用例
契約とSOWの営業日ウィンドウ
プロジェクト開始と契約終了の間の包含的な営業日を測り、週末と作業範囲書に記載の祝日リストを差し引きます。
スプリントと請求期間のキャパシティ
スプリントまたは月次請求期間の平日最大容量を計算し、計画と財務が同じ営業日合計を共有できるようにします。
SLAとマイルストーンの経過時間
二つのマイルストーンの間に何営業日が経過したかをステータス報告で示し、土日や一覧の休業日は数えません。
よくある質問
二つの日付の間のプロジェクト営業日はどう数えますか?
startとendをYYYY-MM-DDで送ってください。任意で同じ形式の配列としてholidaysを渡せます。
開始日と終了日も数えますか?
はい。期間は両端を含むため、開始日と終了日が月曜日から金曜日に当たり、祝日リストにも入っていなければ、それぞれ営業日として数えます。
終了日を開始日より前にするとどうなりますか?
日付を入れ替えずに、その組み合わせを受け付けません。終わりが始まりより前のプロジェクトはほぼ入力ミスなので、誤った結果を出すより気づいてもらうほうが安全です。
同じ祝日を2回入れるとどうなりますか?
重複は無視されるので、2回書いた祝日でも差し引かれるのは1日だけです。差し引いた平日の祝日は結果にも一覧で表示され、誰でも確認できます。
2月29日は入力できますか?
うるう年であれば入力できます。どの日付も実在する日かどうかを確かめるため、2024年2月29日は受け付け、2023年2月29日は受け付けません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/date/business-days-project \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start":"2026-07-06","end":"2026-07-31"}'const res = await fetch("https://api.kit.forhosting.com/date/business-days-project", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start": "2026-07-06",
"end": "2026-07-31"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/business-days-project",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start": "2026-07-06",
"end": "2026-07-31"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/business-days-project", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start":"2026-07-06","end":"2026-07-31"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start":"2026-07-06","end":"2026-07-31"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/business-days-project", 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-06",
"end": "2026-07-31"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.business_days_project",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
検証失敗は課金されず、成功した呼び出しはモデルトークンも外向き通信もなく、公開されている基本料金$0.002を使います。
この計算機におけるプロジェクト営業日の意味
通し日番号はHoward Hinnantのdays_from_civilに従い、曜日はSakamoto法、うるう年は世紀が四百で割り切れるときだけうるうになるという標準のグレゴリオ規則に従います。
入力契約、応答フィールド、エラーの扱い
必須のstartとendをISO-8601の暦日文字列YYYY-MM-DDとして含むJSON本体をPOSTしてください。from・begin・project_startはstartへ、to・finish・project_endはendへ対応します。startはend以前でなければならず、逆転した組は境界を黙って入れ替えずinvalid_inputで失敗します。成功時の本体は正規化されたstartとend、包含的な営業日数としてのbusiness_days、全日付の包含スパンとしてのcalendar_days、範囲内の土日の数weekend_days、実際に合計を減らした平日祝日の数holidays_excluded、範囲内に入ったそれらの平日祝日の並べ替え一覧holidays、および規則を述べる短いformula文字列を返します。無効または欠落した日付、配列でないholidays、startがendより後、はいずれもinvalid_inputとなり課金されません。
プロジェクト営業日の数え方が役立つ場面
実装はpure parseのティアAのため、成功した各呼び出しは公開の基本料金$0.002のみで、言語モデルのトークンも祝日API依存もなく、管轄や会社カレンダーに合う祝日リストはご自身で渡します。リクエストは小さく保ち、結合試験でbusiness_daysを固定すれば、Ganttツール・SLAエンジン・請求プレビュー・エッジワーカー向けに、自前のフルカレンダーサービスを立てずに再現可能なプロジェクト期間が得られます。
技術的な質問
開始日と終了日は含まれますか?
はい。両端は包含的です。startまたはendが平日で一覧の祝日でなければ、business_daysに一を加えます。
祝日が週末に当たった場合は?
週末の祝日は合計をさらに変えません。範囲内の月曜日から金曜日の祝日だけがbusiness_daysを減らし、応答のholidays一覧に現れます。
startがendより後でもよいですか?
いいえ。startがendより後のときはinvalid_inputで失敗し、逆転したプロジェクト期間を黙って入れ替えません。
プロジェクト営業日計算機の料金は?
ブラウザツールは無料です。APIリクエストは成功した呼び出しごとに前払いKIT残高から$0.002です。無効な入力は課金されません。