Passed
Push — master ( ed2711...5bfb66 )
by Samuel
02:22
created

AbstractDatetimeProvider::estimatePeriodEndAt()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 10
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 5
c 1
b 0
f 0
dl 0
loc 10
ccs 5
cts 5
cp 1
rs 10
cc 2
nc 2
nop 1
crap 2
1
<?php
2
3
namespace Recurrence\Provider;
4
5
use Recurrence\Model\Recurrence;
6
7
/**
8
 * Class AbstractDatetimeProvider
9
 * @package Recurrence\Provider
10
 */
11
abstract class AbstractDatetimeProvider
12
{
13
    /**
14
     * @param Recurrence $recurrence
15
     * @return \Datetime
16
     */
17
    public function estimatePeriodEndAt(Recurrence $recurrence)
18
    {
19 1
        $periodEndAt = $recurrence->getPeriodEndAt();
20
21 1
        if ($recurrence->hasCount()) {
22 1
            $periodEndAt = clone $recurrence->getPeriodStartAt();
23 1
            $periodEndAt->modify(str_replace('1', ($recurrence->getCount()*$recurrence->getInterval()), $recurrence->getFrequency()->convertToDateTimeFormat()));
24
        }
25
26 1
        return $periodEndAt;
27
    }
28
29
    /**
30
     * @param Recurrence $recurrence
31
     * @return array<\DateTime>
32
     */
33
    abstract public function provide(Recurrence $recurrence);
34
}
35