public function setTime($hours, $minutes, $seconds)
    {
      // Validate
      self::validateTime($hours, $minutes, $seconds);
      
      // Set internal hours, minutes, seconds and microtime variables
      $this->hours   = (int)$hours;
      $this->minutes = (int)$minutes;
      $this->seconds = (int)$seconds;
      
      if(is_float($seconds))
        $this->microtime = fmod($seconds, floor($seconds));
    }