Jeg vil ikke gemme tiden for hårvask som et timestamp. I stedet ville jeg nøjes med det antal sekunder det estimeres til. (20min * 60sek = 1200sek)
Herefter kan du se på hvornår kunden der skal have vasket hår skal starte(tid konverteres til unix.) Så lægger du de 1200sek , evt plus 300sek så har de også tid til at komme ud af stolen. Det er så deres aktuelle start og stop tider.
Er der en kunde herefter inden for en tidsramme der siger fra kunden med hårvask er færdig + den totale sum sekunder, så er det ikke muligt at reservere tid der.
Altså du skal operere med et par forskellige faktorer:
start og stop tider for første kunde,
start tid for næste kunde
start og stop tider for ny kunde.
åbningstid og lukketid som er de ydre grænser
Har prøvet at konstruere et pseudo eksempel:
- <?php
- $customers = array(
- array('start' => 'kl.08.00', 'len' => 45),
- array('start' => 'kl.08.50', 'len' => 45),
- array('start' => 'kl.10.40', 'len' => 45)
- );
-
- $new_customer = array('start' => 'kl.08.50', 'len' => 50);
-
- for($i=0;$i<sizeof($customers);$i++) {
- if(isset($customers[$i+1])) {
- $next_start = $customers[$i+1]['start'];
- }
- if($new_customer['start'] >= $customers[$i]['start']+$customers[$i]['end']
- && $customers[$i]['start']+$customers[$i]['end'] <= $next_start
- ) {
- // Space can be reserved for new customer'
- }
- }
- ?>
Se om du kan bruge det.