仕様と根拠
空き区間の求め方
営業時間の開始から終了までを時刻順にたどり、予約の開始までの間を空き、予約の終了からまた空き、という順に区間を切り出します。重なった予約は和集合にまとめ、営業時間の外にはみ出した部分は切り取ります。
半開区間の扱い
時間帯は「開始を含み、終了を含まない」半開区間として扱います。10:00-11:00 と 11:00-12:00 は 11:00 で隣り合うだけで重なりません。区間が重ならないことを両立の条件とする考え方は、Interval scheduling で説明されています。
検算
営業時間の分数が、予約済みの合計と空きの合計の和に一致することを毎回確かめて表示します。一致しないときは入力の読み違いがあるので、表の各行を見直してください。
根拠にした仕様・資料
| 仕様・資料 | 確認日 | 使った箇所 |
|---|---|---|
| Interval scheduling(Wikipedia) | 2026年10月28日 | 区間が重ならない(compatible)の定義。空き区間の求め方の記載はなく、一般的な区間の差集合として実装している |
指摘の段階
- エラー: 仕様に反していて、正しく読めない・処理できない入力です。
- 警告: 読めるものの、仕様の推奨に反する・矛盾する・意図と違う結果になりやすい入力です。
- 情報: 誤りではありませんが、知っておくとよい扱い(読み飛ばした部分や解釈)です。
入力の扱い(送信しない仕組み)
処理はすべてお使いのブラウザの中で行います。処理の本体はこのサイトから配信する小さなスクリプト(/app.js)で、外部のサービスやライブラリを読み込みません。ページはブラウザに通信を禁止させる設定(Content-Security-Policy の connect-src)つきで配信しており、入力した内容がサーバーや第三者へ送られることはありません。ファイルを選んだ場合も、端末の中で読み込むだけです。
このツールでできないこと(制約)
- 営業日をまたぐ時間帯(22:00-02:00 など)は扱いません。日ごとに分けて入力してください。
- 席・担当者・設備が複数ある予約は、1 つずつ別々に調べます。同時に複数の資源を割り当てる最適化はしません。
- 移動時間や準備の時間(バッファ)は自動では足しません。必要なら必要時間に含めて入力してください。
- 予約の可否の最終確認は、お使いの予約システムの表示で行ってください。
ご利用にあたって
- 予約の確定や空きの保証をするものではありません。入力された時間帯だけから計算した目安です。