for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Recurrence\Provider;
use Recurrence\Model\Recurrence;
/**
* Class AbstractDatetimeProvider
* @package Recurrence\Provider
*/
abstract class AbstractDatetimeProvider
{
* @param Recurrence $recurrence
* @return \Datetime
public function estimatePeriodEndAt(Recurrence $recurrence)
$periodEndAt = $recurrence->getPeriodEndAt();
if ($recurrence->hasCount()) {
$periodEndAt = clone $recurrence->getPeriodStartAt();
$periodEndAt->modify(str_replace('1', ($recurrence->getCount()*$recurrence->getInterval()), $recurrence->getFrequency()->convertToDateTimeFormat()));
}
return $periodEndAt;
* @return array<\DateTime>
abstract public function provide(Recurrence $recurrence);