DateTimeComparator   A
last analyzed

Complexity

Total Complexity 8

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 8
lcom 0
cbo 0
dl 0
loc 38
ccs 12
cts 12
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getLatestDate() 0 12 4
A getEarliestDate() 0 12 4
1
<?php
2
3
declare(strict_types = 1);
4
5
namespace Arbor\Moment\Comparator;
6
7
use Arbor\Moment\DateTime;
8
9
/**
10
 * Class DateTimeComparator
11
 *
12
 * @package Arbor\Moment\Comparator
13
 * @author Igor Vuckovic <[email protected]>
14
 */
15
class DateTimeComparator
16
{
17
    /**
18
     * @param DateTime|null $endDate1
19
     * @param DateTime|null $endDate2
20
     * @return DateTime|null
21
     */
22 13
    public static function getLatestDate(DateTime $endDate1 = null, DateTime $endDate2 = null)
23
    {
24 13
        if ($endDate1 === null) {
25 7
            return $endDate2;
26
        }
27
28 6
        if ($endDate2 === null) {
29 2
            return $endDate1;
30
        }
31
32 4
        return $endDate1 > $endDate2 ? $endDate1 : $endDate2;
33
    }
34
35
    /**
36
     * @param DateTime|null $startDate1
37
     * @param DateTime|null|null $date2
38
     * @return DateTime|null
39
     */
40 13
    public static function getEarliestDate(DateTime $startDate1 = null, DateTime $date2 = null)
41
    {
42 13
        if ($startDate1 === null) {
43 5
            return $date2;
44
        }
45
46 8
        if ($date2 === null) {
47 3
            return $startDate1;
48
        }
49
50 5
        return $startDate1 < $date2 ? $startDate1 : $date2;
51
    }
52
}
53