Skip to content

Commit 2a2c3f0

Browse files
committed
Improve
1 parent 28b5f95 commit 2a2c3f0

26 files changed

+273
-196
lines changed

Diff for: composer.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
"src/"
2929
],
3030
"files": [
31-
"src/Unit/functions.php"
31+
"src/functions.php"
3232
],
3333
"psr-4": {
3434
"Dgame\\Time\\": "src/"

Diff for: src/Month.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@
88
use Dgame\Time\Unit\Minutes;
99
use Dgame\Time\Unit\Months;
1010
use Dgame\Time\Unit\Seconds;
11-
use Dgame\Time\Unit\TimeConversion;
11+
use Dgame\Time\Unit\TimeConversionInterface;
1212
use Dgame\Time\Unit\Weeks;
1313
use Dgame\Time\Unit\Years;
1414

1515
/**
1616
* Class Month
1717
* @package Dgame\Time
1818
*/
19-
final class Month implements TimeConversion
19+
final class Month implements TimeConversionInterface
2020
{
2121
/**
2222
* @var int

Diff for: src/Unit/TimeUnit.php renamed to src/Unit/AbstractTimeUnit.php

+2-33
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
namespace Dgame\Time\Unit;
44

55
/**
6-
* Class TimeUnit
6+
* Class AbstractTimeUnit
77
* @package Dgame\Time\Unit
88
*/
9-
abstract class TimeUnit implements TimeConversion
9+
abstract class AbstractTimeUnit implements TimeUnitInterface
1010
{
1111
const EPSILON = 0.00001;
1212

@@ -33,27 +33,6 @@ final public function getAmount(): float
3333
return $this->time;
3434
}
3535

36-
/**
37-
* @param TimeUnit $unit
38-
*
39-
* @return TimeUnit
40-
*/
41-
abstract public function add(TimeUnit $unit): TimeUnit;
42-
43-
/**
44-
* @param TimeUnit $unit
45-
*
46-
* @return TimeUnit
47-
*/
48-
abstract public function subtract(TimeUnit $unit): TimeUnit;
49-
50-
/**
51-
* @param TimeUnit $unit
52-
*
53-
* @return bool
54-
*/
55-
abstract public function equals(TimeUnit $unit): bool;
56-
5736
/**
5837
* @param float $time
5938
*
@@ -64,16 +43,6 @@ final public function equalsAmount(float $time): bool
6443
return abs($this->time - $time) < self::EPSILON;
6544
}
6645

67-
/**
68-
* @param string $format
69-
*
70-
* @return string
71-
*/
72-
final public function format(string $format): string
73-
{
74-
return date($format, $this->inSeconds()->getAmount());
75-
}
76-
7746
/**
7847
* @return string
7948
*/

Diff for: src/Unit/Days.php

+9-9
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* Class Days
77
* @package Dgame\Time\Unit
88
*/
9-
final class Days extends TimeUnit
9+
final class Days extends AbstractTimeUnit
1010
{
1111
const DAYS_PER_WEEK = 7;
1212
const DAYS_PER_MONTH = 30.44;
@@ -69,31 +69,31 @@ public function inYears(): Years
6969
}
7070

7171
/**
72-
* @param TimeUnit $unit
72+
* @param TimeUnitInterface $unit
7373
*
74-
* @return TimeUnit
74+
* @return TimeUnitInterface
7575
*/
76-
public function add(TimeUnit $unit): TimeUnit
76+
public function add(TimeUnitInterface $unit): TimeUnitInterface
7777
{
7878
return new self($this->getAmount() + $unit->inDays()->getAmount());
7979
}
8080

8181
/**
82-
* @param TimeUnit $unit
82+
* @param TimeUnitInterface $unit
8383
*
84-
* @return TimeUnit
84+
* @return TimeUnitInterface
8585
*/
86-
public function subtract(TimeUnit $unit): TimeUnit
86+
public function subtract(TimeUnitInterface $unit): TimeUnitInterface
8787
{
8888
return new self($this->getAmount() - $unit->inDays()->getAmount());
8989
}
9090

9191
/**
92-
* @param TimeUnit $unit
92+
* @param TimeUnitInterface $unit
9393
*
9494
* @return bool
9595
*/
96-
public function equals(TimeUnit $unit): bool
96+
public function equals(TimeUnitInterface $unit): bool
9797
{
9898
return $this->equalsAmount($unit->inDays()->getAmount());
9999
}

Diff for: src/Unit/Hours.php

+13-13
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
* Class Hours
77
* @package Dgame\Time\Unit
88
*/
9-
final class Hours extends TimeUnit
9+
final class Hours extends AbstractTimeUnit
1010
{
11-
const HOURS_PER_DAY = 24;
12-
const HOURS_PER_WEEK = 168;
13-
const HOURS_PER_MONTH = 730.56;
14-
const HOURS_PER_YEAR = 8760;
11+
const HOURS_PER_DAY = 24;
12+
const HOURS_PER_WEEK = 168;
13+
const HOURS_PER_MONTH = 730.56;
14+
const HOURS_PER_YEAR = 8760;
1515

1616
/**
1717
* @return Seconds
@@ -70,31 +70,31 @@ public function inYears(): Years
7070
}
7171

7272
/**
73-
* @param TimeUnit $unit
73+
* @param TimeUnitInterface $unit
7474
*
75-
* @return TimeUnit
75+
* @return TimeUnitInterface
7676
*/
77-
public function add(TimeUnit $unit): TimeUnit
77+
public function add(TimeUnitInterface $unit): TimeUnitInterface
7878
{
7979
return new self($this->getAmount() + $unit->inHours()->getAmount());
8080
}
8181

8282
/**
83-
* @param TimeUnit $unit
83+
* @param TimeUnitInterface $unit
8484
*
85-
* @return TimeUnit
85+
* @return TimeUnitInterface
8686
*/
87-
public function subtract(TimeUnit $unit): TimeUnit
87+
public function subtract(TimeUnitInterface $unit): TimeUnitInterface
8888
{
8989
return new self($this->getAmount() - $unit->inHours()->getAmount());
9090
}
9191

9292
/**
93-
* @param TimeUnit $unit
93+
* @param TimeUnitInterface $unit
9494
*
9595
* @return bool
9696
*/
97-
public function equals(TimeUnit $unit): bool
97+
public function equals(TimeUnitInterface $unit): bool
9898
{
9999
return $this->equalsAmount($unit->inHours()->getAmount());
100100
}

Diff for: src/Unit/Minutes.php

+9-9
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* Class Minutes
77
* @package Dgame\Time\Unit
88
*/
9-
final class Minutes extends TimeUnit
9+
final class Minutes extends AbstractTimeUnit
1010
{
1111
const MINUTES_PER_HOUR = 60;
1212
const MINUTES_PER_DAY = 1440;
@@ -71,31 +71,31 @@ public function inYears(): Years
7171
}
7272

7373
/**
74-
* @param TimeUnit $unit
74+
* @param TimeUnitInterface $unit
7575
*
76-
* @return TimeUnit
76+
* @return TimeUnitInterface
7777
*/
78-
public function add(TimeUnit $unit): TimeUnit
78+
public function add(TimeUnitInterface $unit): TimeUnitInterface
7979
{
8080
return new self($this->getAmount() + $unit->inMinutes()->getAmount());
8181
}
8282

8383
/**
84-
* @param TimeUnit $unit
84+
* @param TimeUnitInterface $unit
8585
*
86-
* @return TimeUnit
86+
* @return TimeUnitInterface
8787
*/
88-
public function subtract(TimeUnit $unit): TimeUnit
88+
public function subtract(TimeUnitInterface $unit): TimeUnitInterface
8989
{
9090
return new self($this->getAmount() - $unit->inMinutes()->getAmount());
9191
}
9292

9393
/**
94-
* @param TimeUnit $unit
94+
* @param TimeUnitInterface $unit
9595
*
9696
* @return bool
9797
*/
98-
public function equals(TimeUnit $unit): bool
98+
public function equals(TimeUnitInterface $unit): bool
9999
{
100100
return $this->equalsAmount($unit->inMinutes()->getAmount());
101101
}

Diff for: src/Unit/Months.php

+9-9
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* Class Months
77
* @package Dgame\Time\Unit
88
*/
9-
final class Months extends TimeUnit
9+
final class Months extends AbstractTimeUnit
1010
{
1111
const MONTHS_PER_YEAR = 12;
1212

@@ -67,31 +67,31 @@ public function inYears(): Years
6767
}
6868

6969
/**
70-
* @param TimeUnit $unit
70+
* @param TimeUnitInterface $unit
7171
*
72-
* @return TimeUnit
72+
* @return TimeUnitInterface
7373
*/
74-
public function add(TimeUnit $unit): TimeUnit
74+
public function add(TimeUnitInterface $unit): TimeUnitInterface
7575
{
7676
return new self($this->getAmount() + $unit->inMonths()->getAmount());
7777
}
7878

7979
/**
80-
* @param TimeUnit $unit
80+
* @param TimeUnitInterface $unit
8181
*
82-
* @return TimeUnit
82+
* @return TimeUnitInterface
8383
*/
84-
public function subtract(TimeUnit $unit): TimeUnit
84+
public function subtract(TimeUnitInterface $unit): TimeUnitInterface
8585
{
8686
return new self($this->getAmount() - $unit->inMonths()->getAmount());
8787
}
8888

8989
/**
90-
* @param TimeUnit $unit
90+
* @param TimeUnitInterface $unit
9191
*
9292
* @return bool
9393
*/
94-
public function equals(TimeUnit $unit): bool
94+
public function equals(TimeUnitInterface $unit): bool
9595
{
9696
return $this->equalsAmount($unit->inMonths()->getAmount());
9797
}

Diff for: src/Unit/Seconds.php

+9-9
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* Class Seconds
77
* @package Dgame\Time\Unit
88
*/
9-
final class Seconds extends TimeUnit
9+
final class Seconds extends AbstractTimeUnit
1010
{
1111
const SECONDS_PER_MINUTE = 60;
1212
const SECONDS_PER_HOUR = 3600;
@@ -72,31 +72,31 @@ public function inYears(): Years
7272
}
7373

7474
/**
75-
* @param TimeUnit $unit
75+
* @param TimeUnitInterface $unit
7676
*
77-
* @return TimeUnit
77+
* @return TimeUnitInterface
7878
*/
79-
public function add(TimeUnit $unit): TimeUnit
79+
public function add(TimeUnitInterface $unit): TimeUnitInterface
8080
{
8181
return new self($this->getAmount() + $unit->inSeconds()->getAmount());
8282
}
8383

8484
/**
85-
* @param TimeUnit $unit
85+
* @param TimeUnitInterface $unit
8686
*
87-
* @return TimeUnit
87+
* @return TimeUnitInterface
8888
*/
89-
public function subtract(TimeUnit $unit): TimeUnit
89+
public function subtract(TimeUnitInterface $unit): TimeUnitInterface
9090
{
9191
return new self($this->getAmount() - $unit->inSeconds()->getAmount());
9292
}
9393

9494
/**
95-
* @param TimeUnit $unit
95+
* @param TimeUnitInterface $unit
9696
*
9797
* @return bool
9898
*/
99-
public function equals(TimeUnit $unit): bool
99+
public function equals(TimeUnitInterface $unit): bool
100100
{
101101
return $this->equalsAmount($unit->inSeconds()->getAmount());
102102
}

Diff for: src/Unit/TimeConversion.php renamed to src/Unit/TimeConversionInterface.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
namespace Dgame\Time\Unit;
44

55
/**
6-
* Interface TimeConversion
6+
* Interface TimeConversionInterface
77
* @package Dgame\Time\Unit
88
*/
9-
interface TimeConversion
9+
interface TimeConversionInterface
1010
{
1111
/**
1212
* @return Seconds

Diff for: src/Unit/TimeUnitInterface.php

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?php
2+
3+
namespace Dgame\Time\Unit;
4+
5+
/**
6+
* Interface TimeUnitInterface
7+
* @package Dgame\Time\Unit
8+
*/
9+
interface TimeUnitInterface extends TimeConversionInterface
10+
{
11+
/**
12+
* @return float
13+
*/
14+
public function getAmount(): float;
15+
16+
/**
17+
* @param float $time
18+
*
19+
* @return bool
20+
*/
21+
public function equalsAmount(float $time): bool;
22+
23+
/**
24+
* @param TimeUnitInterface $unit
25+
*
26+
* @return bool
27+
*/
28+
public function equals(self $unit): bool;
29+
30+
/**
31+
* @param TimeUnitInterface $unit
32+
*
33+
* @return TimeUnitInterface
34+
*/
35+
public function add(self $unit): self;
36+
37+
/**
38+
* @param TimeUnitInterface $unit
39+
*
40+
* @return TimeUnitInterface
41+
*/
42+
public function subtract(self $unit): self;
43+
}

0 commit comments

Comments
 (0)