File Coverage

blib/lib/Enum/Declare/Common/TimezoneOffset.pm
Criterion Covered Total %
statement 11 11 100.0
branch n/a
condition n/a
subroutine 4 4 100.0
pod n/a
total 15 15 100.0


line stmt bran cond sub pod time code
1             package Enum::Declare::Common::TimezoneOffset;
2              
3 1     1   125588 use 5.014;
  1         5  
4 1     1   6 use strict;
  1         2  
  1         46  
5 1     1   5 use warnings;
  1         2  
  1         104  
6              
7 1     1   505 use Enum::Declare;
  1         13503  
  1         3320  
8              
9             # ── UTC offsets in seconds ──
10              
11             enum Offset :Type :Export {
12             # ── UTC / GMT ──
13             UTC = 0,
14             GMT = 0,
15              
16             # ── North America ──
17             EST = -18000,
18             EDT = -14400,
19             CST = -21600,
20             CDT = -18000,
21             MST = -25200,
22             MDT = -21600,
23             PST = -28800,
24             PDT = -25200,
25             AKST = -32400,
26             AKDT = -28800,
27             HST = -36000,
28             AST = -14400,
29             ADT = -10800,
30             NST = -12600,
31             NDT = -9000,
32              
33             # ── Europe ──
34             CET = 3600,
35             CEST = 7200,
36             EET = 7200,
37             EEST = 10800,
38             WET = 0,
39             WEST = 3600,
40             BST = 3600,
41             IST_IE = 3600,
42             MSK = 10800,
43             AZOT = -3600,
44              
45             # ── South America ──
46             BRT = -10800,
47             BRST = -7200,
48             ART = -10800,
49             CLT = -14400,
50             CLST = -10800,
51             COT = -18000,
52             PET = -18000,
53             VET = -16200,
54             ECT = -18000,
55             BOT = -14400,
56             PYT = -14400,
57             PYST = -10800,
58             UYT = -10800,
59             GFT = -10800,
60             SRT = -10800,
61             FNT = -7200,
62              
63             # ── Africa ──
64             SAST = 7200,
65             EAT = 10800,
66             WAT = 3600,
67             CAT = 7200,
68             WAST = 7200,
69             MUT = 14400,
70             SCT = 14400,
71             RET = 14400,
72             CVT = -3600,
73              
74             # ── Middle East ──
75             IRST = 12600,
76             IRDT = 16200,
77             GST = 14400,
78             AFT = 16200,
79             IST = 19800,
80             PKT = 18000,
81             NPT = 20700,
82              
83             # ── South / Southeast Asia ──
84             BDT = 21600,
85             MMT = 23400,
86             ICT = 25200,
87             WIB = 25200,
88             WITA = 28800,
89             WIT = 32400,
90             MYT = 28800,
91             PHT = 28800,
92             SGT = 28800,
93             HKT = 28800,
94             TLT = 32400,
95              
96             # ── East Asia ──
97             JST = 32400,
98             KST = 32400,
99             CST_CN = 28800,
100             UZT = 18000,
101             KGT = 21600,
102             TKT = 18000,
103              
104             # ── Russia ──
105             SAMT = 14400,
106             YEKT = 18000,
107             OMST = 21600,
108             KRAT = 25200,
109             IRKT = 28800,
110             YAKT = 32400,
111             VLAT = 36000,
112             MAGT = 39600,
113             PETT = 43200,
114              
115             # ── Australia ──
116             AWST = 28800,
117             AWDT = 32400,
118             ACST = 34200,
119             ACDT = 37800,
120             AEST = 36000,
121             AEDT = 39600,
122             LHST = 37800,
123              
124             # ── Pacific ──
125             NZST = 43200,
126             NZDT = 46800,
127             FJT = 43200,
128             FJST = 46800,
129             TOT = 46800,
130             SST = -39600,
131             CHST = 36000,
132             PONT = 39600,
133             NCT = 39600,
134             CKT = -36000,
135             LINT = 50400,
136             WST_P = 46800,
137              
138             # ── Atlantic / Indian ──
139             IOT = 21600,
140             MVT = 18000,
141             TFT = 18000
142             };
143              
144             1;
145              
146             =head1 NAME
147              
148             Enum::Declare::Common::TimezoneOffset - UTC offsets in seconds for arithmetic
149              
150             =head1 SYNOPSIS
151              
152             use Enum::Declare::Common::TimezoneOffset;
153              
154             say EST; # -18000
155             say JST; # 32400
156              
157             # Convert UTC epoch to local time
158             my $local = $utc_epoch + EST;
159              
160             # Compare offsets
161             ok(JST > EST); # true
162              
163             =head1 ENUMS
164              
165             =head2 Offset :Export
166              
167             Approximately 107 timezone abbreviation constants with UTC offset values
168             in seconds. Matches L entries.
169              
170             Disambiguated names: C (Irish), C (Pacific Samoa).
171              
172             =head1 AUTHOR
173              
174             LNATION C<< >>
175              
176             =head1 LICENSE AND COPYRIGHT
177              
178             Copyright 2026 LNATION. Artistic License 2.0.
179              
180             =cut