code: 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;
          }
      }
docs: この時間と指定された時間を比較します.
  
  この型の時間フィールドと引数の型の時間フィールドのうち,
  共通しているフィールド同士を比較します.
  
  引数がこのクラスを継承したオブジェクトではない場合,
  引数のオブジェクトに対して get("year"), get("month"), get("date"), get("hour"), get("minute")
  を呼び出した結果を比較対象のフィールドとします.
  
  @param  Time 比較対象の時間
  @return int  この時間のほうが過去の場合は負の値, 未来の場合は正の値, それ以外は 0
  @ignore