Ejemplo n.º 1
0
 /**
  * この時間と指定された時間を比較します.
  * 
  * この型の時間フィールドと引数の型の時間フィールドのうち,
  * 共通しているフィールド同士を比較します.
  * 
  * 引数がこのクラスを継承したオブジェクトではない場合,
  * 引数のオブジェクトに対して get("year"), get("month"), get("date"), get("hour"), get("minute")
  * を呼び出した結果を比較対象のフィールドとします.
  * 
  * @param  Time 比較対象の時間
  * @return int  この時間のほうが過去の場合は負の値, 未来の場合は正の値, それ以外は 0
  * @ignore
  */
 protected function compareFields(Time $time)
 {
     $c = parent::compareFields($time);
     if ($c !== 0) {
         return $c;
     }
     $className = __CLASS__;
     if ($time instanceof $className) {
         if ($this->hour !== $time->hour) {
             return $this->hour - $time->hour;
         }
         if ($this->minute !== $time->minute) {
             return $this->minute - $time->minute;
         }
         return 0;
     } else {
         $h = $time->get("hour");
         $m = $time->get("minute");
         if ($this->hour !== $h) {
             return isset($h) ? $this->hour - $h : 0;
         }
         if ($this->minute !== $m) {
             return isset($m) ? $this->minute - $m : 0;
         }
         return 0;
     }
 }