2013-05-08 49 views
0

比方说,我有这个类的多个实例的数组:休息时间到多次

class Booking 
    { 
     public $status; 
     public $start_time; 
     public $end_time; 
    } 
  • array[0] $status = true $start_time = 13:30 $end_time = 14:00
  • array[1] $status = true $start_time = 14:30 $end_time = 17:30
  • array[2] $status = true $start_time = 20:30 $end_time = 21:30
  • array[3] $status = true $start_time = 22:00 $end_time = 23:30

我怎么能阐述其给定的时间,像12:0023:00会产生一个阵列,具有相同类的多个实例的功能,但像这样的东西:

  • array[0] $status = false $start_time = 12:00 $end_time = 13:30
  • array[1] $status = true $start_time = 13:30 $end_time = 14:00
  • array[2] $status = false $start_time = 14:00 $end_time = 14:30
  • array[3] $status = true $start_time = 14:30 $end_time = 17:30
  • array[4] $status = false $start_time = 17:30 $end_time = 20:30
  • array[5] $status = true $start_time = 20:30 $end_time = 21:30
  • array[6] $status = false $start_time = 21:30 $end_time = 22:00
  • array[7] $status = true $start_time = 22:00 $end_time = 23:00
+0

我不明白哪来的复杂性。 – Sebas 2013-05-08 14:25:36

+1

好,那么这将是一个简单的方法让你得到你的答案检查。 – 2013-05-08 14:26:40

+0

我无法理解你的逻辑,@BrunoKlein,请用逻辑澄清你的问题。 – 2013-05-08 14:29:55

回答

1

看看在这个方向:

function generate($from, $till) 
{ 
    $result = array(); 
    $t = $from; 
    $status = true; 
    while($t <= $till) 
    { 
    $result[] = new Booking($status, date('h:i', $t), date('h:i', $t+30*60)); 
    $t = $t+30*60; 
    $status = !$status; 
    } 
    return $result; 
}