* #39 - wip * #39 - fix * #39 - wip * #39 - wip * #39 - wip * Update app/Domain/Enums/Month.php Co-authored-by: Marcin Tracz <marcin.tracz@blumilk.pl> * #39 - cr fixes Co-authored-by: EwelinaLasowy <ewelina.lasowy@blumilk.pl> Co-authored-by: Marcin Tracz <marcin.tracz@blumilk.pl>
This commit is contained in:
53
app/Domain/Enums/Month.php
Normal file
53
app/Domain/Enums/Month.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Toby\Domain\Enums;
|
||||
|
||||
use Carbon\CarbonInterface;
|
||||
use Illuminate\Support\Carbon;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
enum Month: string
|
||||
{
|
||||
case January = "january";
|
||||
case February = "february";
|
||||
case March = "march";
|
||||
case April = "april";
|
||||
case May = "may";
|
||||
case June = "june";
|
||||
case July = "july";
|
||||
case August = "august";
|
||||
case September = "september";
|
||||
case October = "october";
|
||||
case November = "november";
|
||||
case December = "december";
|
||||
|
||||
public function toCarbonNumber(): int
|
||||
{
|
||||
return match ($this) {
|
||||
self::January => CarbonInterface::JANUARY,
|
||||
self::February => CarbonInterface::FEBRUARY,
|
||||
self::March => CarbonInterface::MARCH,
|
||||
self::April => CarbonInterface::APRIL,
|
||||
self::May => CarbonInterface::MAY,
|
||||
self::June => CarbonInterface::JUNE,
|
||||
self::July => CarbonInterface::JULY,
|
||||
self::August => CarbonInterface::AUGUST,
|
||||
self::September => CarbonInterface::SEPTEMBER,
|
||||
self::October => CarbonInterface::OCTOBER,
|
||||
self::November => CarbonInterface::NOVEMBER,
|
||||
self::December => CarbonInterface::DECEMBER,
|
||||
};
|
||||
}
|
||||
|
||||
public static function current(): Month
|
||||
{
|
||||
return Month::from(Str::lower(Carbon::now()->englishMonth));
|
||||
}
|
||||
|
||||
public static function fromNameOrCurrent(string $name): Month
|
||||
{
|
||||
return Month::tryFrom($name) ?? Month::current();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user