Initial Release

This commit is contained in:
Jérôme Gamez
2021-12-10 16:09:27 +01:00
commit 10c02d2b49
28 changed files with 986 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
<?php
declare(strict_types=1);
namespace Beste\Clock;
use Beste\Clock;
use DateTimeImmutable;
use Psr\Clock\ClockInterface;
final class MinuteClock implements Clock
{
private ClockInterface $clock;
private function __construct(ClockInterface $clock)
{
$this->clock = $clock;
}
public static function wrapping(ClockInterface $clock): self
{
return new self($clock);
}
public function now(): DateTimeImmutable
{
return $this->floor($this->clock->now());
}
private function floor(DateTimeImmutable $now): DateTimeImmutable
{
return $now->setTime(
(int) $now->format('H'),
(int) $now->format('i')
);
}
}