営業日計算ツール
日付範囲内の実際の営業日数を計算
営業日計算
営業日計算ツールとは?
営業日計算ツールは、指定した期間の中から週末と入力した祝日日数を差し引き、実際に使える営業日数を数えるためのツールです。納期見積もり、休暇日数の確認、給与計算、請求サイクル、採用スケジュール、プロジェクト計画など、単なる暦日数では粗すぎる場面で役立ちます。営業日はカレンダー上の日数と同じではありません。土日休み、金土休み、地域の祝日、会社の休業日、振替出勤、半日休などで結果が変わります。このツールは入力した週末パターンと祝日日数に基づく簡易見積もりです。人事、契約、法務で使う場合は公式カレンダーで確認してください。
使い方
使い方
- 開始日と終了日を入力します
- 週末除外オプションを選択します(土-日 / 金-土 / なし)
- 祝日数を入力します(オプション)
- 「営業日を計算」をクリックして結果を表示します
カレンダーの前提
- 計算前に週末ルールを設定してください。金-土、土-日、週末なしでは、合計日数が変わります。
- 祝日や会社の休業日を除外する場合は別途入力してください。
利用シーン
仕組み
営業日カウントは、包含範囲 `[start, end]` のうち週末でも祝日でもない暦日の数です。両端をUTC深夜に正規化した場合の標準的な包含端点の公式は `total_days = (end - start) / 86_400_000 + 1` で、その後週末日数と祝日日数を差し引きます。曜日の判定には `Date.prototype.getDay()` を使用し、日曜日に `0` から土曜日に `6` を返します。`getDay()` は `getDate()` ではない点、結果がブラウザのローカルタイムゾーンである点に注意が必要で、UTC日付文字列が深夜を跨ぐと予期しない曜日になる場合があります。 週末パターンは地域によって異なります。世界的なデフォルトは土曜日・日曜日(西洋、インド、アジアの大半)ですが、中東では歴史的に木曜日・金曜日が使用されており、2024年時点では湾岸諸国(UAE、バーレーン、クウェート、カタール)の大半が金曜日・土曜日または金曜日午前半日の土曜日・日曜日に統一しています。イラン、アフガニスタン、南アジアの一部では金曜日のみ、イスラエルでは金曜日・土曜日が休日です。このツールは土日・金土・なしの3つの一般的なプリセットを提供し、祝日カウントでその他すべてを差し引きでカバーします。 カウントアルゴリズム自体には2つの実用的な実装があります。ナイーブな反復は1日ずつ進行します:`for (let d = start; d <= end; d.setDate(d.getDate()+1)) if (![0,6].includes(d.getDay())) count++`。これは暦日数に対してO(n)で、読みやすい実装です。閉形式の代替案は `full_weeks * 5 + partial_week_workdays` を計算しO(1)で実行され、多年にわたる範囲で有効です。週末に重なる祝日を二重に差し引かないよう、標準的なパターンは `holidays.filter(h => !isWeekend(h)).length` で祝日セットをフィルタリングします。中国の振替出勤(調休)政策は、純粋な週末パターンロジックでは表現できない特殊性を加えます。国務院は毎年、春節や国慶節の延長休日に補填するため、特定の土曜日や日曜日を法定勤務日に変えるリストを公布するため、中国のカレンダーでは祝日リストを明示的な「振替勤務日」リストと組み合わせる必要があります。
- 包含範囲の公式:`total_days = (end - start) / 86_400_000 + 1`。DSTずれを避けるため両日付をUTC深夜に正規化
- `Date.prototype.getDay()` はブラウザのローカルタイムゾーンで0(日曜)から6(土曜)を返す。UTCではなく、タイムゾーン依存のコードには `getUTCDay()` を使用すべき
- 週末プリセット:土日(西洋、インド、アジアの大半)、金土(2006〜2013年以降の湾岸諸国)、金のみ(イラン)、なし(24時間稼働)
- O(1)の閉形式:`full_weeks * 5 + extra_workdays_in_partial_week`。多年の範囲では1日ずつの反復より優先
- 週末に重なる祝日は二重カウントしてはならない。生の祝日数ではなく `holidays.filter(h => !isWeekend(h)).length` を差し引く
- 中国国務院の調休:特定の土日が法定勤務日となり延長休日に補填。明示的な振替勤務日リストが必要
- 米国の連邦祝日(5 U.S.C. § 6103)は年間11営業日:元日、MLKデー、大統領の日、戦没将兵追悼日、ジューンティーンス、独立記念日、労働者の日、コロンバスデー、退役軍人の日、感謝祭、クリスマス
使用例
2026 年の年間営業日数
開始日: 2026-01-01
終了日: 2026-12-31
週末: 土曜・日曜
祝日: 13 (中国の調休調整後の法定休日)
総日数: 365
週末日数: 104
祝日: 13
営業日: 2482 週間スプリントの稼働可能日数
開始日: 2026-06-15 (月)
終了日: 2026-06-26 (金)
週末: 土曜・日曜
祝日: 0
総日数: 12
週末日数: 2
営業日: 10 (フル 2 週間スプリント、開発者 4 名 => 40 人日)金土を週末とする中東チーム
開始日: 2026-09-01
終了日: 2026-09-30
週末: 金曜・土曜
祝日: 1 (地域の祝日)
総日数: 30
週末日数: 8 (9 月の金 + 土)
営業日: 21祝日明けのオンボーディング期間
開始日: 2026-10-08 (国慶節後の最初の営業日)
終了日: 2026-10-30
週末: 土曜・日曜
祝日: 0
総日数: 23
週末日数: 6
営業日: 17 (3 週間のオンボーディング計画に十分)米国祝日を考慮した 2027 Q1 計画
開始日: 2027-01-01
終了日: 2027-03-31
週末: 土曜・日曜
祝日: 4 (元日、MLK Day、Presidents Day、Good Friday)
総日数: 90
週末日数: 26
営業日: 60よくある質問
稼働日はどのようにカウントされますか?
デフォルトでは月曜から金曜がカウントされ、土曜と日曜はスキップされます。祝日リストに指定した祝日も除外されます。本ページでは総暦日数、週末日数、祝日数、結果として得られる稼働日数が表示されます。
祝日は自動で適用されますか?
いいえ。本計算ツールは祝日を自動で読み込みません。祝日数は手動で入力する必要があります。正確な数値はお住まいの国の公式カレンダーで確認してください。
振替出勤日(调休)に対応していますか?
いいえ。本計算ツールは週末と入力された祝日数のみを除外します。中国の 调休(振替出勤)や類似の制度を自動では処理しません。振替出勤日が含まれる場合は、週末ルールや祝日数を手動で調整してください。
週末のみを除外し、祝日は除外しないことはできますか?
はい。祝日リストをオフに切り替えると、計算では土曜と日曜のみが除外されます。週末となる曜日のカスタマイズも可能で、中東の一部のスケジュールでは金土が週末になります。
「日付差」ツールとの違いは何ですか?
「日付差」は暦日数を返します。本ツールは週末と祝日をスキップした稼働日数を返します。プロジェクトの締切、契約日、SLA 期間にはこちらを使い、純粋な経過時間には「日付差」を使ってください。
過去の日付でも使えますか?
はい。過去でも未来でも、任意の2つの日付の間の稼働日数を計算します。開始日と終了日を入力し、週末ルールを選択し、祝日数を入力すると、その範囲の総稼働日数が計算されます。
データはアップロードされますか?
いいえ。計算はブラウザ内で実行されます。祝日数や日付は保存も送信もされません。