AceTime 3.0.0 Date and time classes for Arduino that support timezones from the TZ Database.

zone_infos.cpp
1 // This file was generated by the following script:
2 //
3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedb/tzfiles
5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedb
6 // --tz_version 2025b
7 // --action zonedb
8 // --language arduino
9 // --scope basic
10 // --db_namespace testingzonedb
11 // --zi_namespace basic::Info
12 // --include_list include_list.txt
13 // --nocompress
14 // --start_year 1980
15 // --until_year 2200
16 //
17 // using the TZ Database files
18 //
19 // africa
20 // antarctica
21 // asia
22 // australasia
23 // backward
24 // etcetera
25 // europe
26 // northamerica
27 // southamerica
28 //
29 // from https://github.com/eggert/tz/releases/tag/2025b
30 //
31 // Supported Zones: 12 (11 zones, 1 links)
32 // Unsupported Zones: 585 (329 zones, 256 links)
33 //
34 // Requested Years: [1980,2200]
35 // Accurate Years: [1980,32767]
36 //
37 // Original Years: [1844,2087]
38 // Generated Years: [1945,2007]
39 // Lower/Upper Truncated: [True,False]
40 //
41 // Estimator Years: [1945,2009]
42 // Max Buffer Size: 6
43 //
44 // Records:
45 // Infos: 12
46 // Eras: 15
47 // Policies: 8
48 // Rules: 32
49 //
50 // Memory (8-bits):
51 // Context: 16
52 // Rules: 288
53 // Policies: 24
54 // Eras: 165
55 // Zones: 143
56 // Links: 13
57 // Registry: 24
58 // Formats: 27
59 // Letters: 11
60 // Fragments: 0
61 // Names: 202 (original: 202)
62 // TOTAL: 913
63 //
64 // Memory (32-bits):
65 // Context: 24
66 // Rules: 384
67 // Policies: 64
68 // Eras: 240
69 // Zones: 264
70 // Links: 24
71 // Registry: 48
72 // Formats: 27
73 // Letters: 17
74 // Fragments: 0
75 // Names: 202 (original: 202)
76 // TOTAL: 1294
77 //
78 // DO NOT EDIT
79
80 #include <zoneinfo/compat.h>
81 #include "zone_policies.h"
82 #include "zone_infos.h"
83
84 namespace ace_time {
85 namespace testingzonedb {
86
87 //---------------------------------------------------------------------------
88 // ZoneContext
89 //---------------------------------------------------------------------------
90
91 static const char kVersionString[] ACE_TIME_PROGMEM = "2025b";
92 const __FlashStringHelper* const kTzDatabaseVersion =
93 (const __FlashStringHelper*) kVersionString;
94
95
96 const char* const kFragments[] ACE_TIME_PROGMEM = {
97 nullptr, // '\x00' cannot exist
98
99 };
100
101 static const char kLetter0[] ACE_TIME_PROGMEM = "";
102 static const char kLetter1[] ACE_TIME_PROGMEM = "D";
103 static const char kLetter2[] ACE_TIME_PROGMEM = "S";
104
105 const char* const kLetters[] ACE_TIME_PROGMEM = {
106 kLetter0, // ""
107 kLetter1, // "D"
108 kLetter2, // "S"
109
110 };
111
112 const basic::Info::ZoneContext kZoneContext ACE_TIME_PROGMEM = {
113 1980 /*startYear*/,
114 2200 /*untilYear*/,
115 1980 /*startYearAccurate*/,
116 32767 /*untilYearAccurate*/,
117 2100 /*baseYear*/,
118 6 /*maxTransitions*/,
119 kVersionString /*tzVersion*/,
120 1 /*numFragments*/,
121 3 /*numLetters*/,
122 kFragments /*fragments*/,
123 kLetters /*letters*/,
124 };
125
126 //---------------------------------------------------------------------------
127 // Zones: 11
128 // Eras: 15
129 //---------------------------------------------------------------------------
130
131 //---------------------------------------------------------------------------
132 // Zone name: Africa/Johannesburg
133 // Eras: 1
134 //---------------------------------------------------------------------------
135
136 static const basic::Info::ZoneEra kZoneEraAfrica_Johannesburg[] ACE_TIME_PROGMEM = {
137 // 2:00 SA SAST
138 {
139 &kZonePolicySA /*zonePolicy*/,
140 "SAST" /*format*/,
141 8 /*offsetCode*/,
142 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
143 127 /*untilYearTiny*/,
144 1 /*untilMonth*/,
145 1 /*untilDay*/,
146 0 /*untilTimeCode*/,
147 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
148 },
149
150 };
151
152 static const char kZoneNameAfrica_Johannesburg[] ACE_TIME_PROGMEM = "Africa/Johannesburg";
153
154 const basic::Info::ZoneInfo kZoneAfrica_Johannesburg ACE_TIME_PROGMEM = {
155 kZoneNameAfrica_Johannesburg /*name*/,
156 0xd5d157a0 /*zoneId*/,
157 &kZoneContext /*zoneContext*/,
158 1 /*numEras*/,
159 kZoneEraAfrica_Johannesburg /*eras*/,
160 nullptr /*targetInfo*/,
161 };
162
163 //---------------------------------------------------------------------------
164 // Zone name: America/Chicago
165 // Eras: 1
166 //---------------------------------------------------------------------------
167
168 static const basic::Info::ZoneEra kZoneEraAmerica_Chicago[] ACE_TIME_PROGMEM = {
169 // -6:00 US C%sT
170 {
171 &kZonePolicyUS /*zonePolicy*/,
172 "C%T" /*format*/,
173 -24 /*offsetCode*/,
174 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
175 127 /*untilYearTiny*/,
176 1 /*untilMonth*/,
177 1 /*untilDay*/,
178 0 /*untilTimeCode*/,
179 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
180 },
181
182 };
183
184 static const char kZoneNameAmerica_Chicago[] ACE_TIME_PROGMEM = "America/Chicago";
185
186 const basic::Info::ZoneInfo kZoneAmerica_Chicago ACE_TIME_PROGMEM = {
187 kZoneNameAmerica_Chicago /*name*/,
188 0x4b92b5d4 /*zoneId*/,
189 &kZoneContext /*zoneContext*/,
190 1 /*numEras*/,
191 kZoneEraAmerica_Chicago /*eras*/,
192 nullptr /*targetInfo*/,
193 };
194
195 //---------------------------------------------------------------------------
196 // Zone name: America/Denver
197 // Eras: 1
198 //---------------------------------------------------------------------------
199
200 static const basic::Info::ZoneEra kZoneEraAmerica_Denver[] ACE_TIME_PROGMEM = {
201 // -7:00 US M%sT
202 {
203 &kZonePolicyUS /*zonePolicy*/,
204 "M%T" /*format*/,
205 -28 /*offsetCode*/,
206 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
207 127 /*untilYearTiny*/,
208 1 /*untilMonth*/,
209 1 /*untilDay*/,
210 0 /*untilTimeCode*/,
211 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
212 },
213
214 };
215
216 static const char kZoneNameAmerica_Denver[] ACE_TIME_PROGMEM = "America/Denver";
217
218 const basic::Info::ZoneInfo kZoneAmerica_Denver ACE_TIME_PROGMEM = {
219 kZoneNameAmerica_Denver /*name*/,
220 0x97d10b2a /*zoneId*/,
221 &kZoneContext /*zoneContext*/,
222 1 /*numEras*/,
223 kZoneEraAmerica_Denver /*eras*/,
224 nullptr /*targetInfo*/,
225 };
226
227 //---------------------------------------------------------------------------
228 // Zone name: America/Edmonton
229 // Eras: 2
230 //---------------------------------------------------------------------------
231
232 static const basic::Info::ZoneEra kZoneEraAmerica_Edmonton[] ACE_TIME_PROGMEM = {
233 // -7:00 Edm M%sT 1987
234 {
235 &kZonePolicyEdm /*zonePolicy*/,
236 "M%T" /*format*/,
237 -28 /*offsetCode*/,
238 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
239 -113 /*untilYearTiny*/,
240 1 /*untilMonth*/,
241 1 /*untilDay*/,
242 0 /*untilTimeCode*/,
243 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
244 },
245 // -7:00 Canada M%sT
246 {
247 &kZonePolicyCanada /*zonePolicy*/,
248 "M%T" /*format*/,
249 -28 /*offsetCode*/,
250 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
251 127 /*untilYearTiny*/,
252 1 /*untilMonth*/,
253 1 /*untilDay*/,
254 0 /*untilTimeCode*/,
255 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
256 },
257
258 };
259
260 static const char kZoneNameAmerica_Edmonton[] ACE_TIME_PROGMEM = "America/Edmonton";
261
262 const basic::Info::ZoneInfo kZoneAmerica_Edmonton ACE_TIME_PROGMEM = {
263 kZoneNameAmerica_Edmonton /*name*/,
264 0x6cb9484a /*zoneId*/,
265 &kZoneContext /*zoneContext*/,
266 2 /*numEras*/,
267 kZoneEraAmerica_Edmonton /*eras*/,
268 nullptr /*targetInfo*/,
269 };
270
271 //---------------------------------------------------------------------------
272 // Zone name: America/Los_Angeles
273 // Eras: 1
274 //---------------------------------------------------------------------------
275
276 static const basic::Info::ZoneEra kZoneEraAmerica_Los_Angeles[] ACE_TIME_PROGMEM = {
277 // -8:00 US P%sT
278 {
279 &kZonePolicyUS /*zonePolicy*/,
280 "P%T" /*format*/,
281 -32 /*offsetCode*/,
282 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
283 127 /*untilYearTiny*/,
284 1 /*untilMonth*/,
285 1 /*untilDay*/,
286 0 /*untilTimeCode*/,
287 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
288 },
289
290 };
291
292 static const char kZoneNameAmerica_Los_Angeles[] ACE_TIME_PROGMEM = "America/Los_Angeles";
293
294 const basic::Info::ZoneInfo kZoneAmerica_Los_Angeles ACE_TIME_PROGMEM = {
295 kZoneNameAmerica_Los_Angeles /*name*/,
296 0xb7f7e8f2 /*zoneId*/,
297 &kZoneContext /*zoneContext*/,
298 1 /*numEras*/,
299 kZoneEraAmerica_Los_Angeles /*eras*/,
300 nullptr /*targetInfo*/,
301 };
302
303 //---------------------------------------------------------------------------
304 // Zone name: America/New_York
305 // Eras: 1
306 //---------------------------------------------------------------------------
307
308 static const basic::Info::ZoneEra kZoneEraAmerica_New_York[] ACE_TIME_PROGMEM = {
309 // -5:00 US E%sT
310 {
311 &kZonePolicyUS /*zonePolicy*/,
312 "E%T" /*format*/,
313 -20 /*offsetCode*/,
314 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
315 127 /*untilYearTiny*/,
316 1 /*untilMonth*/,
317 1 /*untilDay*/,
318 0 /*untilTimeCode*/,
319 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
320 },
321
322 };
323
324 static const char kZoneNameAmerica_New_York[] ACE_TIME_PROGMEM = "America/New_York";
325
326 const basic::Info::ZoneInfo kZoneAmerica_New_York ACE_TIME_PROGMEM = {
327 kZoneNameAmerica_New_York /*name*/,
328 0x1e2a7654 /*zoneId*/,
329 &kZoneContext /*zoneContext*/,
330 1 /*numEras*/,
331 kZoneEraAmerica_New_York /*eras*/,
332 nullptr /*targetInfo*/,
333 };
334
335 //---------------------------------------------------------------------------
336 // Zone name: America/Toronto
337 // Eras: 1
338 //---------------------------------------------------------------------------
339
340 static const basic::Info::ZoneEra kZoneEraAmerica_Toronto[] ACE_TIME_PROGMEM = {
341 // -5:00 Canada E%sT
342 {
343 &kZonePolicyCanada /*zonePolicy*/,
344 "E%T" /*format*/,
345 -20 /*offsetCode*/,
346 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
347 127 /*untilYearTiny*/,
348 1 /*untilMonth*/,
349 1 /*untilDay*/,
350 0 /*untilTimeCode*/,
351 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
352 },
353
354 };
355
356 static const char kZoneNameAmerica_Toronto[] ACE_TIME_PROGMEM = "America/Toronto";
357
358 const basic::Info::ZoneInfo kZoneAmerica_Toronto ACE_TIME_PROGMEM = {
359 kZoneNameAmerica_Toronto /*name*/,
360 0x792e851b /*zoneId*/,
361 &kZoneContext /*zoneContext*/,
362 1 /*numEras*/,
363 kZoneEraAmerica_Toronto /*eras*/,
364 nullptr /*targetInfo*/,
365 };
366
367 //---------------------------------------------------------------------------
368 // Zone name: America/Vancouver
369 // Eras: 2
370 //---------------------------------------------------------------------------
371
372 static const basic::Info::ZoneEra kZoneEraAmerica_Vancouver[] ACE_TIME_PROGMEM = {
373 // -8:00 Vanc P%sT 1987
374 {
375 &kZonePolicyVanc /*zonePolicy*/,
376 "P%T" /*format*/,
377 -32 /*offsetCode*/,
378 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
379 -113 /*untilYearTiny*/,
380 1 /*untilMonth*/,
381 1 /*untilDay*/,
382 0 /*untilTimeCode*/,
383 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
384 },
385 // -8:00 Canada P%sT
386 {
387 &kZonePolicyCanada /*zonePolicy*/,
388 "P%T" /*format*/,
389 -32 /*offsetCode*/,
390 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
391 127 /*untilYearTiny*/,
392 1 /*untilMonth*/,
393 1 /*untilDay*/,
394 0 /*untilTimeCode*/,
395 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
396 },
397
398 };
399
400 static const char kZoneNameAmerica_Vancouver[] ACE_TIME_PROGMEM = "America/Vancouver";
401
402 const basic::Info::ZoneInfo kZoneAmerica_Vancouver ACE_TIME_PROGMEM = {
403 kZoneNameAmerica_Vancouver /*name*/,
404 0x2c6f6b1f /*zoneId*/,
405 &kZoneContext /*zoneContext*/,
406 2 /*numEras*/,
407 kZoneEraAmerica_Vancouver /*eras*/,
408 nullptr /*targetInfo*/,
409 };
410
411 //---------------------------------------------------------------------------
412 // Zone name: America/Winnipeg
413 // Eras: 2
414 //---------------------------------------------------------------------------
415
416 static const basic::Info::ZoneEra kZoneEraAmerica_Winnipeg[] ACE_TIME_PROGMEM = {
417 // -6:00 Winn C%sT 2006
418 {
419 &kZonePolicyWinn /*zonePolicy*/,
420 "C%T" /*format*/,
421 -24 /*offsetCode*/,
422 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
423 -94 /*untilYearTiny*/,
424 1 /*untilMonth*/,
425 1 /*untilDay*/,
426 0 /*untilTimeCode*/,
427 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
428 },
429 // -6:00 Canada C%sT
430 {
431 &kZonePolicyCanada /*zonePolicy*/,
432 "C%T" /*format*/,
433 -24 /*offsetCode*/,
434 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
435 127 /*untilYearTiny*/,
436 1 /*untilMonth*/,
437 1 /*untilDay*/,
438 0 /*untilTimeCode*/,
439 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
440 },
441
442 };
443
444 static const char kZoneNameAmerica_Winnipeg[] ACE_TIME_PROGMEM = "America/Winnipeg";
445
446 const basic::Info::ZoneInfo kZoneAmerica_Winnipeg ACE_TIME_PROGMEM = {
447 kZoneNameAmerica_Winnipeg /*name*/,
448 0x8c7dafc7 /*zoneId*/,
449 &kZoneContext /*zoneContext*/,
450 2 /*numEras*/,
451 kZoneEraAmerica_Winnipeg /*eras*/,
452 nullptr /*targetInfo*/,
453 };
454
455 //---------------------------------------------------------------------------
456 // Zone name: Australia/Darwin
457 // Eras: 1
458 //---------------------------------------------------------------------------
459
460 static const basic::Info::ZoneEra kZoneEraAustralia_Darwin[] ACE_TIME_PROGMEM = {
461 // 9:30 Aus AC%sT
462 {
463 &kZonePolicyAus /*zonePolicy*/,
464 "AC%T" /*format*/,
465 38 /*offsetCode*/,
466 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
467 127 /*untilYearTiny*/,
468 1 /*untilMonth*/,
469 1 /*untilDay*/,
470 0 /*untilTimeCode*/,
471 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
472 },
473
474 };
475
476 static const char kZoneNameAustralia_Darwin[] ACE_TIME_PROGMEM = "Australia/Darwin";
477
478 const basic::Info::ZoneInfo kZoneAustralia_Darwin ACE_TIME_PROGMEM = {
479 kZoneNameAustralia_Darwin /*name*/,
480 0x2876bdff /*zoneId*/,
481 &kZoneContext /*zoneContext*/,
482 1 /*numEras*/,
483 kZoneEraAustralia_Darwin /*eras*/,
484 nullptr /*targetInfo*/,
485 };
486
487 //---------------------------------------------------------------------------
488 // Zone name: Pacific/Galapagos
489 // Eras: 2
490 //---------------------------------------------------------------------------
491
492 static const basic::Info::ZoneEra kZoneEraPacific_Galapagos[] ACE_TIME_PROGMEM = {
493 // -5:00 - %z 1986
494 {
495 nullptr /*zonePolicy*/,
496 "" /*format*/,
497 -20 /*offsetCode*/,
498 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
499 -114 /*untilYearTiny*/,
500 1 /*untilMonth*/,
501 1 /*untilDay*/,
502 0 /*untilTimeCode*/,
503 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
504 },
505 // -6:00 Ecuador %z
506 {
507 &kZonePolicyEcuador /*zonePolicy*/,
508 "" /*format*/,
509 -24 /*offsetCode*/,
510 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
511 127 /*untilYearTiny*/,
512 1 /*untilMonth*/,
513 1 /*untilDay*/,
514 0 /*untilTimeCode*/,
515 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
516 },
517
518 };
519
520 static const char kZoneNamePacific_Galapagos[] ACE_TIME_PROGMEM = "Pacific/Galapagos";
521
522 const basic::Info::ZoneInfo kZonePacific_Galapagos ACE_TIME_PROGMEM = {
523 kZoneNamePacific_Galapagos /*name*/,
524 0xa952f752 /*zoneId*/,
525 &kZoneContext /*zoneContext*/,
526 2 /*numEras*/,
527 kZoneEraPacific_Galapagos /*eras*/,
528 nullptr /*targetInfo*/,
529 };
530
531
532
533 //---------------------------------------------------------------------------
534 // Links: 1
535 //---------------------------------------------------------------------------
536
537 //---------------------------------------------------------------------------
538 // Link name: US/Pacific -> America/Los_Angeles
539 //---------------------------------------------------------------------------
540
541 static const char kZoneNameUS_Pacific[] ACE_TIME_PROGMEM = "US/Pacific";
542
543 const basic::Info::ZoneInfo kZoneUS_Pacific ACE_TIME_PROGMEM = {
544 kZoneNameUS_Pacific /*name*/,
545 0xa950f6ab /*zoneId*/,
546 &kZoneContext /*zoneContext*/,
547 1 /*numEras*/,
548 kZoneEraAmerica_Los_Angeles /*eras*/,
549 &kZoneAmerica_Los_Angeles /*targetInfo*/,
550 };
551
552
553 }
554 }
compat.h
Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...