DESIGN / CODE / INFRA / AI

解説

7日間と7営業日は同じ?AIに日程を頼む前に休みと起算日をそろえよう

架空の休業日を持つ1週間で、暦日7日・平日5日・営業日4日を検算。土日、指定休業日、開始日と期限の数え方を整理。

7日間と7営業日は同じ?AIに日程を頼む前に休みと起算日をそろえよう
保存リストを見る →
この記事の道しるべ 4項目

「一週間あれば、7営業日で終わるよね」とAIの予定表を読む前に、営業日に含める日を確認しよう。暦の日数と、作業できる日数は同じとは限らないよ。

このページでは、土日と一つの指定休業日を除く、架空の職場のカレンダーを使う。まず紙のカレンダーで確認できるよ。コードで検算したい場合だけ、Python 3.12を用意しよう。

今回の数えるルール

対象期間は2026年11月9日から15日。開始日と終了日の両方を含む7日間だよ。営業日の条件は「月曜〜金曜、ただし11月11日を指定休業日として除く」と決める。

11月11日はこの例だけの架空の社内休業日で、公的な祝日だという意味ではないよ。国の祝日を自動取得する仕組みも使わない。

日付 曜日 この例での扱い
11月9日 月 営業日
11月10日 火 営業日
11月11日 水 指定休業日
11月12日 木 営業日
11月13日 金 営業日
11月14日 土 休み
11月15日 日 休み

暦日では7日、土日だけ除くと5日、今回の休業日も除くと4日になる。同じ期間でも、質問している日数によって答えが違うね。

Pythonで同じ条件を使う

from datetime import date, timedelta

start = date(2026, 11, 9)
end = date(2026, 11, 15)
closed = {date(2026, 11, 11)}  # この例だけの指定休業日
days = []
current = start
while current <= end:
    if current.weekday() < 5 and current not in closed:
        days.append(current.isoformat())
    current += timedelta(days=1)
print(days)
print(len(days))

weekdayは月曜を0、日曜を6として返す。5より小さい条件で月〜金を選び、指定休業日を除外する。結果の日付は9・10・12・13日の4件になるよ。

このコードは開始日と終了日を含める設計。開始日の翌日から数える納期へ、そのまま使わないでね。

「何営業日後」には起算日の条件も必要

例えば「受付から3営業日後」なら、受付当日を1日目にするのか、次の営業日から1日目にするのかを決める。さらに受付時刻の締め切り、相手の地域、臨時休業によっても変わるよ。

AIへの依頼には、対象期間、地域、週の休み、祝日・臨時休業日、両端を含むかを添えよう。「一般的な営業日で計算して」だけでは、同じ条件にならないかもしれない。

結果は総数と日付の一覧で確認する

4という件数だけだと、違う日を休みとして計算していても気付けない。日付と曜日、除外した理由を一緒に出してもらい、使う職場やサービスの営業カレンダーと照合しよう。

編集部では2026年10月29日にPython公式資料を確認し、上の架空ルールで曜日・4件の一覧・暦日数を検算した。実在する事業者の納期や営業日は保証するものではないよ。期間の両端、日付と曜日の確認も参考になるね。

参考・出典

公開と変更の記録
  • :初回公開

日時は日本時間です。記載のある変更は、確認できた編集記録に基づきます。更新日の違いだけから変更内容を推測して載せることはありません。

更新・訂正の方針 →

みんなのコメント 0

感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。

最初のコメントをどうぞ。