1
+ <?php
2
+
3
+ /*
4
+ * Copyright (c) 2025. Encore Digital Group.
5
+ * All Rights Reserved.
6
+ */
7
+
8
+ namespace EncoreDigitalGroup \StdLib \Objects \Calendar ;
9
+
10
+ use EncoreDigitalGroup \StdLib \Objects \Support \Traits \HasEnumValue ;
11
+
12
+ enum Month: string
13
+ {
14
+ use HasEnumValue;
15
+
16
+ case January = "january " ;
17
+ case February = "february " ;
18
+ case March = "march " ;
19
+ case April = "april " ;
20
+ case May = "may " ;
21
+ case June = "june " ;
22
+ case July = "july " ;
23
+ case August = "august " ;
24
+ case September = "september " ;
25
+ case October = "october " ;
26
+ case November = "november " ;
27
+ case December = "december " ;
28
+
29
+ public function toInt (): int
30
+ {
31
+ return match ($ this ) {
32
+ self ::January => 1 ,
33
+ self ::February => 2 ,
34
+ self ::March => 3 ,
35
+ self ::April => 4 ,
36
+ self ::May => 5 ,
37
+ self ::June => 6 ,
38
+ self ::July => 7 ,
39
+ self ::August => 8 ,
40
+ self ::September => 9 ,
41
+ self ::October => 10 ,
42
+ self ::November => 11 ,
43
+ self ::December => 12 ,
44
+ };
45
+ }
46
+
47
+ public function next (): self
48
+ {
49
+ return match ($ this ) {
50
+ self ::January => self ::February,
51
+ self ::February => self ::March,
52
+ self ::March => self ::April,
53
+ self ::April => self ::May,
54
+ self ::May => self ::June,
55
+ self ::June => self ::July,
56
+ self ::July => self ::August,
57
+ self ::August => self ::September,
58
+ self ::September => self ::October,
59
+ self ::October => self ::November,
60
+ self ::November => self ::December,
61
+ self ::December => self ::January,
62
+ };
63
+ }
64
+
65
+ public function previous (): self
66
+ {
67
+ return match ($ this ) {
68
+ self ::January => self ::December,
69
+ self ::February => self ::January,
70
+ self ::March => self ::February,
71
+ self ::April => self ::March,
72
+ self ::May => self ::April,
73
+ self ::June => self ::May,
74
+ self ::July => self ::June,
75
+ self ::August => self ::July,
76
+ self ::September => self ::August,
77
+ self ::October => self ::September,
78
+ self ::November => self ::October,
79
+ self ::December => self ::November,
80
+ };
81
+ }
82
+ }
0 commit comments