DaysSpan::getFrom()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
crap 1
1
<?php
2
3
namespace CL\DateUtils;
4
5
use DateTime;
6
7
/**
8
 * @author    Ivan Kerin <[email protected]>
9
 * @copyright 2015, Clippings Ltd.
10
 * @license   http://spdx.org/licenses/BSD-3-Clause
11
 */
12
class DaysSpan
13
{
14
    /**
15
     * @var Days
16
     */
17
    private $from;
18
19
    /**
20
     * @var Days
21
     */
22
    private $to;
23
24
    /**
25
     * @param Days $from
26
     * @param Days $to
27
     */
28 1
    public function __construct(Days $from, Days $to)
29
    {
30 1
        $this->from = $from;
31 1
        $this->to = $to;
32 1
    }
33
34
    /**
35
     * @return Days
36
     */
37 3
    public function getFrom()
38
    {
39 3
        return $this->from;
40
    }
41
42
    /**
43
     * @return Days
44
     */
45 3
    public function getTo()
46
    {
47 3
        return $this->to;
48
    }
49
50
    /**
51
     * @param  DaysSpan $span
52
     * @return self
53
     */
54 1
    public function add(DaysSpan $span)
55
    {
56 1
        $this->from->add($span->from);
57 1
        $this->to->add($span->to);
58
59 1
        return $this;
60
    }
61
62
    /**
63
     * @param  DateTime $start
64
     * @return DateTimeSpan
65
     */
66 2
    public function toDateTimeSpan(DateTime $start)
67
    {
68 2
        return new DateTimeSpan(
69 2
            $this->from->toDateTime($start),
70 2
            $this->to->toDateTime($start)
71
        );
72
    }
73
74
    /**
75
     * @return string
76
     */
77 3
    public function humanize()
78
    {
79 3
        if ($this->from->getDays() == $this->to->getDays()) {
80 1
            return $this->from->getDays().' days';
81
        }
82
83 2
        return $this->from->getDays().' - '.$this->to->getDays().' days';
84
    }
85
}
86