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