01
単価は、区間の途中で切り替わる
平日/休日・昼/夜・深夜割増は予約区間の途中で変わります。一律単価で計算すると毎予約でずれるため、区間を料金帯ごとに分割して積み上げます。18:00 ちょうどがどちらの単価かという境界の扱いも固定しています。
- 時間帯別単価の積み上げ
- 境界時刻の扱いを固定
- 単位時間へ切り上げ・最低利用時間
施設の時間貸し運営
時間貸しの芯は「予約区間に、時間帯別の単価をどう積むか」。spacelog は日跨ぎと二重予約を特別扱いせずに扱える形で、 施設の予約と料金を管理します。
会議室 A
予約 18:00 – 翌 2:00
夜間
¥800 / 30分
深夜割増
¥1,200 / 30分
内部表現 18:00 – 26:00開始日 0 時起点の経過時間へ正規化。24 を超えた先は翌日の料金表へ巻き戻す。
※ 施設側が設定する料金表のサンプルです。spacelog の利用料ではありません。
課金単位が「時間」になった瞬間に出てくる難所だけを、正面から扱っています。
01
平日/休日・昼/夜・深夜割増は予約区間の途中で変わります。一律単価で計算すると毎予約でずれるため、区間を料金帯ごとに分割して積み上げます。18:00 ちょうどがどちらの単価かという境界の扱いも固定しています。
02
22:00〜翌 2:00 を素朴に実装すると「終了 < 開始」に見えて負の時間が出ます。時刻を開始日 0 時起点の経過時間に正規化し、深夜帯は 翌9時 を 33 のように 24 を超える値で表現。同じ座標系のまま単価を積めます。
03
時間貸しで最も許されない不具合です。重なり・内包・日跨ぎ同士のいずれも拒否し、隣接(12:00 終了 → 12:00 開始)は許可します。取消済みの予約は重複判定から外します。再販できないと機会損失になるためです。
重複判定
重なり
既存 10:00 – 13:00
新規 12:00 – 15:00
409 重複
内包
既存 10:00 – 15:00
新規 11:00 – 12:00
409 重複
隣接
既存 09:00 – 12:00
新規 12:00 – 14:00
許可
料金表に穴がある時間帯は 0 円にせず例外にします。黙って無料にすると取りこぼしに気付けないためです。