1*37748cd8SNickeau<?php 2*37748cd8SNickeau 3*37748cd8SNickeaunamespace Cron; 4*37748cd8SNickeau 5*37748cd8SNickeauuse DateTime; 6*37748cd8SNickeau 7*37748cd8SNickeau 8*37748cd8SNickeau/** 9*37748cd8SNickeau * Year field. Allows: * , / - 10*37748cd8SNickeau */ 11*37748cd8SNickeauclass YearField extends AbstractField 12*37748cd8SNickeau{ 13*37748cd8SNickeau public function isSatisfiedBy(DateTime $date, $value) 14*37748cd8SNickeau { 15*37748cd8SNickeau return $this->isSatisfied($date->format('Y'), $value); 16*37748cd8SNickeau } 17*37748cd8SNickeau 18*37748cd8SNickeau public function increment(DateTime $date, $invert = false) 19*37748cd8SNickeau { 20*37748cd8SNickeau if ($invert) { 21*37748cd8SNickeau $date->modify('-1 year'); 22*37748cd8SNickeau $date->setDate($date->format('Y'), 12, 31); 23*37748cd8SNickeau $date->setTime(23, 59, 0); 24*37748cd8SNickeau } else { 25*37748cd8SNickeau $date->modify('+1 year'); 26*37748cd8SNickeau $date->setDate($date->format('Y'), 1, 1); 27*37748cd8SNickeau $date->setTime(0, 0, 0); 28*37748cd8SNickeau } 29*37748cd8SNickeau 30*37748cd8SNickeau return $this; 31*37748cd8SNickeau } 32*37748cd8SNickeau 33*37748cd8SNickeau public function validate($value) 34*37748cd8SNickeau { 35*37748cd8SNickeau return (bool) preg_match('/^[\*,\/\-0-9]+$/', $value); 36*37748cd8SNickeau } 37*37748cd8SNickeau} 38