setOffset($dayOffset); } /** * Verifica se um Job será executado na data fornecida * @param object $checkDate A data que será verificada * @return bool True caso o Job deva ser executado e false caso contrário * @access public */ public function checkMatchesInterval($checkDate) { if ($checkDate->format('G:i') !== $this->startDate->format('G:i')) return false; $start = ($this->startDate->format('Y') * 12) + $this->startDate->format('n'); $check = ($checkDate->format('Y') * 12) + $checkDate->format('n'); if ((($check - $start) % $this->interval['value']) !== 0) return false; $model = new DateTime($checkDate->format('Y-n-1 G:i:00')); $model->modify('+1 month'); $model->modify("-{$this->dayOffset} day"); return (($checkDate->format('Y-n-j G:i:00') == $model->format('Y-n-j G:i:00')) && ($checkDate->format('U') >= $this->startDate->format('U'))); } /** * Define a quantidade de dias restantes para o final do mês (que é quando o Job deve ser executado) * @param int $dayOffset O número de dias restantes para o final do mês * @return void * @access public */ public function setOffset($dayOffset) { $this->dayOffset = $dayOffset; } } ?>