56 $this->cronCommandSections = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode(
' ', $cronCommand);
81 if ($loopCount > 2880) {
82 throw new \RuntimeException(
'Unable to determine next execution timestamp: Hour and minute combination is invalid.', 1291494126);
95 if ($loopCount > 1464) {
96 throw new \RuntimeException(
'Unable to determine next execution timestamp: Day of month, month and day of week combination is invalid.', 1291501280);
103 $this->timestamp = $newTimestamp;
138 $commandMatch =
false;
140 $commandMatch =
true;
142 return $commandMatch;
157 $isInDayOfMonth = $this->
isInCommandList($this->cronCommandSections[2], $dayOfMonth);
158 $isInMonth = $this->
isInCommandList($this->cronCommandSections[3], $month);
159 $isInDayOfWeek = $this->
isInCommandList($this->cronCommandSections[4], $dayOfWeek);
165 $isDayOfMonthRestricted = (string)$this->cronCommandSections[2] !==
'*';
166 $isDayOfWeekRestricted = (string)$this->cronCommandSections[4] !==
'*';
167 $commandMatch =
false;
169 if ($isInDayOfMonth && $isDayOfMonthRestricted || $isInDayOfWeek && $isDayOfWeekRestricted || $isInDayOfMonth && !$isDayOfMonthRestricted && $isInDayOfWeek && !$isDayOfWeekRestricted) {
170 $commandMatch =
true;
173 return $commandMatch;
186 if ((
string)$commandExpression ===
'*') {
189 $inList = \TYPO3\CMS\Core\Utility\GeneralUtility::inList($commandExpression, $numberToMatch);
210 $nextDay = $now + 60 * 60 * 25;
211 $nextDay = mktime(0, 0, 0, date(
'n', $nextDay), date(
'j', $nextDay), date(
'Y', $nextDay));
212 return $nextDay - $now;
223 return mktime(date(
'H',
$timestamp), date(
'i',
$timestamp), 0, date(
'n',
$timestamp), date(
'j',
$timestamp), date(
'Y',
$timestamp));