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/testingzonedbc/tzfiles
5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbc
6 // --tz_version 2025b
7 // --action zonedb
8 // --language arduino
9 // --scope complete
10 // --db_namespace testingzonedbc
11 // --zi_namespace complete::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: 16 (15 zones, 1 links)
32 // Unsupported Zones: 581 (325 zones, 256 links)
33 //
34 // Requested Years: [1980,2200]
35 // Accurate Years: [1980,32767]
36 //
37 // Original Years: [1844,2087]
38 // Generated Years: [1945,2087]
39 // Lower/Upper Truncated: [True,False]
40 //
41 // Estimator Years: [1945,2090]
42 // Max Buffer Size: 7
43 //
44 // Records:
45 // Infos: 16
46 // Eras: 30
47 // Policies: 11
48 // Rules: 220
49 //
50 // Memory (8-bits):
51 // Context: 16
52 // Rules: 2640
53 // Policies: 33
54 // Eras: 450
55 // Zones: 195
56 // Links: 13
57 // Registry: 32
58 // Formats: 47
59 // Letters: 23
60 // Fragments: 0
61 // Names: 260 (original: 260)
62 // TOTAL: 3709
63 //
64 // Memory (32-bits):
65 // Context: 24
66 // Rules: 2640
67 // Policies: 88
68 // Eras: 600
69 // Zones: 360
70 // Links: 24
71 // Registry: 64
72 // Formats: 47
73 // Letters: 33
74 // Fragments: 0
75 // Names: 260 (original: 260)
76 // TOTAL: 4140
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 testingzonedbc {
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 = "CAT";
103 static const char kLetter2[] ACE_TIME_PROGMEM = "D";
104 static const char kLetter3[] ACE_TIME_PROGMEM = "S";
105 static const char kLetter4[] ACE_TIME_PROGMEM = "WAT";
106
107 const char* const kLetters[] ACE_TIME_PROGMEM = {
108 kLetter0, // ""
109 kLetter1, // "CAT"
110 kLetter2, // "D"
111 kLetter3, // "S"
112 kLetter4, // "WAT"
113
114 };
115
116 const complete::Info::ZoneContext kZoneContext ACE_TIME_PROGMEM = {
117 1980 /*startYear*/,
118 2200 /*untilYear*/,
119 1980 /*startYearAccurate*/,
120 32767 /*untilYearAccurate*/,
121 2100 /*baseYear*/,
122 7 /*maxTransitions*/,
123 kVersionString /*tzVersion*/,
124 1 /*numFragments*/,
125 5 /*numLetters*/,
126 kFragments /*fragments*/,
127 kLetters /*letters*/,
128 };
129
130 //---------------------------------------------------------------------------
131 // Zones: 15
132 // Eras: 30
133 //---------------------------------------------------------------------------
134
135 //---------------------------------------------------------------------------
136 // Zone name: Africa/Casablanca
137 // Eras: 4
138 //---------------------------------------------------------------------------
139
140 static const complete::Info::ZoneEra kZoneEraAfrica_Casablanca[] ACE_TIME_PROGMEM = {
141 // 0:00 Morocco %z 1984 Mar 16
142 {
143 &kZonePolicyMorocco /*zonePolicy*/,
144 "" /*format*/,
145 0 /*offsetCode (0/15)*/,
146 0 /*offsetRemainder (0%15)*/,
147 0 /*deltaMinutes*/,
148 1984 /*untilYear*/,
149 3 /*untilMonth*/,
150 16 /*untilDay*/,
151 0 /*untilTimeCode (0/15)*/,
152 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
153 },
154 // 1:00 - %z 1986
155 {
156 nullptr /*zonePolicy*/,
157 "" /*format*/,
158 240 /*offsetCode (3600/15)*/,
159 0 /*offsetRemainder (3600%15)*/,
160 0 /*deltaMinutes*/,
161 1986 /*untilYear*/,
162 1 /*untilMonth*/,
163 1 /*untilDay*/,
164 0 /*untilTimeCode (0/15)*/,
165 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
166 },
167 // 0:00 Morocco %z 2018 Oct 28 3:00
168 {
169 &kZonePolicyMorocco /*zonePolicy*/,
170 "" /*format*/,
171 0 /*offsetCode (0/15)*/,
172 0 /*offsetRemainder (0%15)*/,
173 0 /*deltaMinutes*/,
174 2018 /*untilYear*/,
175 10 /*untilMonth*/,
176 28 /*untilDay*/,
177 720 /*untilTimeCode (10800/15)*/,
178 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
179 },
180 // 1:00 Morocco %z
181 {
182 &kZonePolicyMorocco /*zonePolicy*/,
183 "" /*format*/,
184 240 /*offsetCode (3600/15)*/,
185 0 /*offsetRemainder (3600%15)*/,
186 0 /*deltaMinutes*/,
187 32767 /*untilYear*/,
188 1 /*untilMonth*/,
189 1 /*untilDay*/,
190 0 /*untilTimeCode (0/15)*/,
191 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
192 },
193
194 };
195
196 static const char kZoneNameAfrica_Casablanca[] ACE_TIME_PROGMEM = "Africa/Casablanca";
197
198 const complete::Info::ZoneInfo kZoneAfrica_Casablanca ACE_TIME_PROGMEM = {
199 kZoneNameAfrica_Casablanca /*name*/,
200 0xc59f1b33 /*zoneId*/,
201 &kZoneContext /*zoneContext*/,
202 4 /*numEras*/,
203 kZoneEraAfrica_Casablanca /*eras*/,
204 nullptr /*targetInfo*/,
205 };
206
207 //---------------------------------------------------------------------------
208 // Zone name: Africa/Windhoek
209 // Eras: 2
210 //---------------------------------------------------------------------------
211
212 static const complete::Info::ZoneEra kZoneEraAfrica_Windhoek[] ACE_TIME_PROGMEM = {
213 // 2:00 - SAST 1990 Mar 21
214 {
215 nullptr /*zonePolicy*/,
216 "SAST" /*format*/,
217 480 /*offsetCode (7200/15)*/,
218 0 /*offsetRemainder (7200%15)*/,
219 0 /*deltaMinutes*/,
220 1990 /*untilYear*/,
221 3 /*untilMonth*/,
222 21 /*untilDay*/,
223 0 /*untilTimeCode (0/15)*/,
224 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
225 },
226 // 2:00 Namibia %s
227 {
228 &kZonePolicyNamibia /*zonePolicy*/,
229 "%" /*format*/,
230 480 /*offsetCode (7200/15)*/,
231 0 /*offsetRemainder (7200%15)*/,
232 0 /*deltaMinutes*/,
233 32767 /*untilYear*/,
234 1 /*untilMonth*/,
235 1 /*untilDay*/,
236 0 /*untilTimeCode (0/15)*/,
237 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
238 },
239
240 };
241
242 static const char kZoneNameAfrica_Windhoek[] ACE_TIME_PROGMEM = "Africa/Windhoek";
243
244 const complete::Info::ZoneInfo kZoneAfrica_Windhoek ACE_TIME_PROGMEM = {
245 kZoneNameAfrica_Windhoek /*name*/,
246 0x789c9bd3 /*zoneId*/,
247 &kZoneContext /*zoneContext*/,
248 2 /*numEras*/,
249 kZoneEraAfrica_Windhoek /*eras*/,
250 nullptr /*targetInfo*/,
251 };
252
253 //---------------------------------------------------------------------------
254 // Zone name: America/Caracas
255 // Eras: 3
256 //---------------------------------------------------------------------------
257
258 static const complete::Info::ZoneEra kZoneEraAmerica_Caracas[] ACE_TIME_PROGMEM = {
259 // -4:00 - %z 2007 Dec 9 3:00
260 {
261 nullptr /*zonePolicy*/,
262 "" /*format*/,
263 -960 /*offsetCode (-14400/15)*/,
264 0 /*offsetRemainder (-14400%15)*/,
265 0 /*deltaMinutes*/,
266 2007 /*untilYear*/,
267 12 /*untilMonth*/,
268 9 /*untilDay*/,
269 720 /*untilTimeCode (10800/15)*/,
270 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
271 },
272 // -4:30 - %z 2016 May 1 2:30
273 {
274 nullptr /*zonePolicy*/,
275 "" /*format*/,
276 -1080 /*offsetCode (-16200/15)*/,
277 0 /*offsetRemainder (-16200%15)*/,
278 0 /*deltaMinutes*/,
279 2016 /*untilYear*/,
280 5 /*untilMonth*/,
281 1 /*untilDay*/,
282 600 /*untilTimeCode (9000/15)*/,
283 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
284 },
285 // -4:00 - %z
286 {
287 nullptr /*zonePolicy*/,
288 "" /*format*/,
289 -960 /*offsetCode (-14400/15)*/,
290 0 /*offsetRemainder (-14400%15)*/,
291 0 /*deltaMinutes*/,
292 32767 /*untilYear*/,
293 1 /*untilMonth*/,
294 1 /*untilDay*/,
295 0 /*untilTimeCode (0/15)*/,
296 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
297 },
298
299 };
300
301 static const char kZoneNameAmerica_Caracas[] ACE_TIME_PROGMEM = "America/Caracas";
302
303 const complete::Info::ZoneInfo kZoneAmerica_Caracas ACE_TIME_PROGMEM = {
304 kZoneNameAmerica_Caracas /*name*/,
305 0x3be064f4 /*zoneId*/,
306 &kZoneContext /*zoneContext*/,
307 3 /*numEras*/,
308 kZoneEraAmerica_Caracas /*eras*/,
309 nullptr /*targetInfo*/,
310 };
311
312 //---------------------------------------------------------------------------
313 // Zone name: America/Chicago
314 // Eras: 1
315 //---------------------------------------------------------------------------
316
317 static const complete::Info::ZoneEra kZoneEraAmerica_Chicago[] ACE_TIME_PROGMEM = {
318 // -6:00 US C%sT
319 {
320 &kZonePolicyUS /*zonePolicy*/,
321 "C%T" /*format*/,
322 -1440 /*offsetCode (-21600/15)*/,
323 0 /*offsetRemainder (-21600%15)*/,
324 0 /*deltaMinutes*/,
325 32767 /*untilYear*/,
326 1 /*untilMonth*/,
327 1 /*untilDay*/,
328 0 /*untilTimeCode (0/15)*/,
329 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
330 },
331
332 };
333
334 static const char kZoneNameAmerica_Chicago[] ACE_TIME_PROGMEM = "America/Chicago";
335
336 const complete::Info::ZoneInfo kZoneAmerica_Chicago ACE_TIME_PROGMEM = {
337 kZoneNameAmerica_Chicago /*name*/,
338 0x4b92b5d4 /*zoneId*/,
339 &kZoneContext /*zoneContext*/,
340 1 /*numEras*/,
341 kZoneEraAmerica_Chicago /*eras*/,
342 nullptr /*targetInfo*/,
343 };
344
345 //---------------------------------------------------------------------------
346 // Zone name: America/Denver
347 // Eras: 1
348 //---------------------------------------------------------------------------
349
350 static const complete::Info::ZoneEra kZoneEraAmerica_Denver[] ACE_TIME_PROGMEM = {
351 // -7:00 US M%sT
352 {
353 &kZonePolicyUS /*zonePolicy*/,
354 "M%T" /*format*/,
355 -1680 /*offsetCode (-25200/15)*/,
356 0 /*offsetRemainder (-25200%15)*/,
357 0 /*deltaMinutes*/,
358 32767 /*untilYear*/,
359 1 /*untilMonth*/,
360 1 /*untilDay*/,
361 0 /*untilTimeCode (0/15)*/,
362 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
363 },
364
365 };
366
367 static const char kZoneNameAmerica_Denver[] ACE_TIME_PROGMEM = "America/Denver";
368
369 const complete::Info::ZoneInfo kZoneAmerica_Denver ACE_TIME_PROGMEM = {
370 kZoneNameAmerica_Denver /*name*/,
371 0x97d10b2a /*zoneId*/,
372 &kZoneContext /*zoneContext*/,
373 1 /*numEras*/,
374 kZoneEraAmerica_Denver /*eras*/,
375 nullptr /*targetInfo*/,
376 };
377
378 //---------------------------------------------------------------------------
379 // Zone name: America/Edmonton
380 // Eras: 2
381 //---------------------------------------------------------------------------
382
383 static const complete::Info::ZoneEra kZoneEraAmerica_Edmonton[] ACE_TIME_PROGMEM = {
384 // -7:00 Edm M%sT 1987
385 {
386 &kZonePolicyEdm /*zonePolicy*/,
387 "M%T" /*format*/,
388 -1680 /*offsetCode (-25200/15)*/,
389 0 /*offsetRemainder (-25200%15)*/,
390 0 /*deltaMinutes*/,
391 1987 /*untilYear*/,
392 1 /*untilMonth*/,
393 1 /*untilDay*/,
394 0 /*untilTimeCode (0/15)*/,
395 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
396 },
397 // -7:00 Canada M%sT
398 {
399 &kZonePolicyCanada /*zonePolicy*/,
400 "M%T" /*format*/,
401 -1680 /*offsetCode (-25200/15)*/,
402 0 /*offsetRemainder (-25200%15)*/,
403 0 /*deltaMinutes*/,
404 32767 /*untilYear*/,
405 1 /*untilMonth*/,
406 1 /*untilDay*/,
407 0 /*untilTimeCode (0/15)*/,
408 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
409 },
410
411 };
412
413 static const char kZoneNameAmerica_Edmonton[] ACE_TIME_PROGMEM = "America/Edmonton";
414
415 const complete::Info::ZoneInfo kZoneAmerica_Edmonton ACE_TIME_PROGMEM = {
416 kZoneNameAmerica_Edmonton /*name*/,
417 0x6cb9484a /*zoneId*/,
418 &kZoneContext /*zoneContext*/,
419 2 /*numEras*/,
420 kZoneEraAmerica_Edmonton /*eras*/,
421 nullptr /*targetInfo*/,
422 };
423
424 //---------------------------------------------------------------------------
425 // Zone name: America/Los_Angeles
426 // Eras: 1
427 //---------------------------------------------------------------------------
428
429 static const complete::Info::ZoneEra kZoneEraAmerica_Los_Angeles[] ACE_TIME_PROGMEM = {
430 // -8:00 US P%sT
431 {
432 &kZonePolicyUS /*zonePolicy*/,
433 "P%T" /*format*/,
434 -1920 /*offsetCode (-28800/15)*/,
435 0 /*offsetRemainder (-28800%15)*/,
436 0 /*deltaMinutes*/,
437 32767 /*untilYear*/,
438 1 /*untilMonth*/,
439 1 /*untilDay*/,
440 0 /*untilTimeCode (0/15)*/,
441 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
442 },
443
444 };
445
446 static const char kZoneNameAmerica_Los_Angeles[] ACE_TIME_PROGMEM = "America/Los_Angeles";
447
448 const complete::Info::ZoneInfo kZoneAmerica_Los_Angeles ACE_TIME_PROGMEM = {
449 kZoneNameAmerica_Los_Angeles /*name*/,
450 0xb7f7e8f2 /*zoneId*/,
451 &kZoneContext /*zoneContext*/,
452 1 /*numEras*/,
453 kZoneEraAmerica_Los_Angeles /*eras*/,
454 nullptr /*targetInfo*/,
455 };
456
457 //---------------------------------------------------------------------------
458 // Zone name: America/New_York
459 // Eras: 1
460 //---------------------------------------------------------------------------
461
462 static const complete::Info::ZoneEra kZoneEraAmerica_New_York[] ACE_TIME_PROGMEM = {
463 // -5:00 US E%sT
464 {
465 &kZonePolicyUS /*zonePolicy*/,
466 "E%T" /*format*/,
467 -1200 /*offsetCode (-18000/15)*/,
468 0 /*offsetRemainder (-18000%15)*/,
469 0 /*deltaMinutes*/,
470 32767 /*untilYear*/,
471 1 /*untilMonth*/,
472 1 /*untilDay*/,
473 0 /*untilTimeCode (0/15)*/,
474 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
475 },
476
477 };
478
479 static const char kZoneNameAmerica_New_York[] ACE_TIME_PROGMEM = "America/New_York";
480
481 const complete::Info::ZoneInfo kZoneAmerica_New_York ACE_TIME_PROGMEM = {
482 kZoneNameAmerica_New_York /*name*/,
483 0x1e2a7654 /*zoneId*/,
484 &kZoneContext /*zoneContext*/,
485 1 /*numEras*/,
486 kZoneEraAmerica_New_York /*eras*/,
487 nullptr /*targetInfo*/,
488 };
489
490 //---------------------------------------------------------------------------
491 // Zone name: America/Toronto
492 // Eras: 1
493 //---------------------------------------------------------------------------
494
495 static const complete::Info::ZoneEra kZoneEraAmerica_Toronto[] ACE_TIME_PROGMEM = {
496 // -5:00 Canada E%sT
497 {
498 &kZonePolicyCanada /*zonePolicy*/,
499 "E%T" /*format*/,
500 -1200 /*offsetCode (-18000/15)*/,
501 0 /*offsetRemainder (-18000%15)*/,
502 0 /*deltaMinutes*/,
503 32767 /*untilYear*/,
504 1 /*untilMonth*/,
505 1 /*untilDay*/,
506 0 /*untilTimeCode (0/15)*/,
507 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
508 },
509
510 };
511
512 static const char kZoneNameAmerica_Toronto[] ACE_TIME_PROGMEM = "America/Toronto";
513
514 const complete::Info::ZoneInfo kZoneAmerica_Toronto ACE_TIME_PROGMEM = {
515 kZoneNameAmerica_Toronto /*name*/,
516 0x792e851b /*zoneId*/,
517 &kZoneContext /*zoneContext*/,
518 1 /*numEras*/,
519 kZoneEraAmerica_Toronto /*eras*/,
520 nullptr /*targetInfo*/,
521 };
522
523 //---------------------------------------------------------------------------
524 // Zone name: America/Vancouver
525 // Eras: 2
526 //---------------------------------------------------------------------------
527
528 static const complete::Info::ZoneEra kZoneEraAmerica_Vancouver[] ACE_TIME_PROGMEM = {
529 // -8:00 Vanc P%sT 1987
530 {
531 &kZonePolicyVanc /*zonePolicy*/,
532 "P%T" /*format*/,
533 -1920 /*offsetCode (-28800/15)*/,
534 0 /*offsetRemainder (-28800%15)*/,
535 0 /*deltaMinutes*/,
536 1987 /*untilYear*/,
537 1 /*untilMonth*/,
538 1 /*untilDay*/,
539 0 /*untilTimeCode (0/15)*/,
540 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
541 },
542 // -8:00 Canada P%sT
543 {
544 &kZonePolicyCanada /*zonePolicy*/,
545 "P%T" /*format*/,
546 -1920 /*offsetCode (-28800/15)*/,
547 0 /*offsetRemainder (-28800%15)*/,
548 0 /*deltaMinutes*/,
549 32767 /*untilYear*/,
550 1 /*untilMonth*/,
551 1 /*untilDay*/,
552 0 /*untilTimeCode (0/15)*/,
553 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
554 },
555
556 };
557
558 static const char kZoneNameAmerica_Vancouver[] ACE_TIME_PROGMEM = "America/Vancouver";
559
560 const complete::Info::ZoneInfo kZoneAmerica_Vancouver ACE_TIME_PROGMEM = {
561 kZoneNameAmerica_Vancouver /*name*/,
562 0x2c6f6b1f /*zoneId*/,
563 &kZoneContext /*zoneContext*/,
564 2 /*numEras*/,
565 kZoneEraAmerica_Vancouver /*eras*/,
566 nullptr /*targetInfo*/,
567 };
568
569 //---------------------------------------------------------------------------
570 // Zone name: America/Whitehorse
571 // Eras: 3
572 //---------------------------------------------------------------------------
573
574 static const complete::Info::ZoneEra kZoneEraAmerica_Whitehorse[] ACE_TIME_PROGMEM = {
575 // -8:00 - PST 1980
576 {
577 nullptr /*zonePolicy*/,
578 "PST" /*format*/,
579 -1920 /*offsetCode (-28800/15)*/,
580 0 /*offsetRemainder (-28800%15)*/,
581 0 /*deltaMinutes*/,
582 1980 /*untilYear*/,
583 1 /*untilMonth*/,
584 1 /*untilDay*/,
585 0 /*untilTimeCode (0/15)*/,
586 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
587 },
588 // -8:00 Canada P%sT 2020 Nov 1
589 {
590 &kZonePolicyCanada /*zonePolicy*/,
591 "P%T" /*format*/,
592 -1920 /*offsetCode (-28800/15)*/,
593 0 /*offsetRemainder (-28800%15)*/,
594 0 /*deltaMinutes*/,
595 2020 /*untilYear*/,
596 11 /*untilMonth*/,
597 1 /*untilDay*/,
598 0 /*untilTimeCode (0/15)*/,
599 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
600 },
601 // -7:00 - MST
602 {
603 nullptr /*zonePolicy*/,
604 "MST" /*format*/,
605 -1680 /*offsetCode (-25200/15)*/,
606 0 /*offsetRemainder (-25200%15)*/,
607 0 /*deltaMinutes*/,
608 32767 /*untilYear*/,
609 1 /*untilMonth*/,
610 1 /*untilDay*/,
611 0 /*untilTimeCode (0/15)*/,
612 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
613 },
614
615 };
616
617 static const char kZoneNameAmerica_Whitehorse[] ACE_TIME_PROGMEM = "America/Whitehorse";
618
619 const complete::Info::ZoneInfo kZoneAmerica_Whitehorse ACE_TIME_PROGMEM = {
620 kZoneNameAmerica_Whitehorse /*name*/,
621 0x54e0e3e8 /*zoneId*/,
622 &kZoneContext /*zoneContext*/,
623 3 /*numEras*/,
624 kZoneEraAmerica_Whitehorse /*eras*/,
625 nullptr /*targetInfo*/,
626 };
627
628 //---------------------------------------------------------------------------
629 // Zone name: America/Winnipeg
630 // Eras: 2
631 //---------------------------------------------------------------------------
632
633 static const complete::Info::ZoneEra kZoneEraAmerica_Winnipeg[] ACE_TIME_PROGMEM = {
634 // -6:00 Winn C%sT 2006
635 {
636 &kZonePolicyWinn /*zonePolicy*/,
637 "C%T" /*format*/,
638 -1440 /*offsetCode (-21600/15)*/,
639 0 /*offsetRemainder (-21600%15)*/,
640 0 /*deltaMinutes*/,
641 2006 /*untilYear*/,
642 1 /*untilMonth*/,
643 1 /*untilDay*/,
644 0 /*untilTimeCode (0/15)*/,
645 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
646 },
647 // -6:00 Canada C%sT
648 {
649 &kZonePolicyCanada /*zonePolicy*/,
650 "C%T" /*format*/,
651 -1440 /*offsetCode (-21600/15)*/,
652 0 /*offsetRemainder (-21600%15)*/,
653 0 /*deltaMinutes*/,
654 32767 /*untilYear*/,
655 1 /*untilMonth*/,
656 1 /*untilDay*/,
657 0 /*untilTimeCode (0/15)*/,
658 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
659 },
660
661 };
662
663 static const char kZoneNameAmerica_Winnipeg[] ACE_TIME_PROGMEM = "America/Winnipeg";
664
665 const complete::Info::ZoneInfo kZoneAmerica_Winnipeg ACE_TIME_PROGMEM = {
666 kZoneNameAmerica_Winnipeg /*name*/,
667 0x8c7dafc7 /*zoneId*/,
668 &kZoneContext /*zoneContext*/,
669 2 /*numEras*/,
670 kZoneEraAmerica_Winnipeg /*eras*/,
671 nullptr /*targetInfo*/,
672 };
673
674 //---------------------------------------------------------------------------
675 // Zone name: Australia/Darwin
676 // Eras: 1
677 //---------------------------------------------------------------------------
678
679 static const complete::Info::ZoneEra kZoneEraAustralia_Darwin[] ACE_TIME_PROGMEM = {
680 // 9:30 Aus AC%sT
681 {
682 &kZonePolicyAus /*zonePolicy*/,
683 "AC%T" /*format*/,
684 2280 /*offsetCode (34200/15)*/,
685 0 /*offsetRemainder (34200%15)*/,
686 0 /*deltaMinutes*/,
687 32767 /*untilYear*/,
688 1 /*untilMonth*/,
689 1 /*untilDay*/,
690 0 /*untilTimeCode (0/15)*/,
691 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
692 },
693
694 };
695
696 static const char kZoneNameAustralia_Darwin[] ACE_TIME_PROGMEM = "Australia/Darwin";
697
698 const complete::Info::ZoneInfo kZoneAustralia_Darwin ACE_TIME_PROGMEM = {
699 kZoneNameAustralia_Darwin /*name*/,
700 0x2876bdff /*zoneId*/,
701 &kZoneContext /*zoneContext*/,
702 1 /*numEras*/,
703 kZoneEraAustralia_Darwin /*eras*/,
704 nullptr /*targetInfo*/,
705 };
706
707 //---------------------------------------------------------------------------
708 // Zone name: Europe/Lisbon
709 // Eras: 4
710 //---------------------------------------------------------------------------
711
712 static const complete::Info::ZoneEra kZoneEraEurope_Lisbon[] ACE_TIME_PROGMEM = {
713 // 0:00 Port WE%sT 1986
714 {
715 &kZonePolicyPort /*zonePolicy*/,
716 "WE%T" /*format*/,
717 0 /*offsetCode (0/15)*/,
718 0 /*offsetRemainder (0%15)*/,
719 0 /*deltaMinutes*/,
720 1986 /*untilYear*/,
721 1 /*untilMonth*/,
722 1 /*untilDay*/,
723 0 /*untilTimeCode (0/15)*/,
724 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
725 },
726 // 0:00 EU WE%sT 1992 Sep 27 1:00u
727 {
728 &kZonePolicyEU /*zonePolicy*/,
729 "WE%T" /*format*/,
730 0 /*offsetCode (0/15)*/,
731 0 /*offsetRemainder (0%15)*/,
732 0 /*deltaMinutes*/,
733 1992 /*untilYear*/,
734 9 /*untilMonth*/,
735 27 /*untilDay*/,
736 240 /*untilTimeCode (3600/15)*/,
737 32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
738 },
739 // 1:00 EU CE%sT 1996 Mar 31 1:00u
740 {
741 &kZonePolicyEU /*zonePolicy*/,
742 "CE%T" /*format*/,
743 240 /*offsetCode (3600/15)*/,
744 0 /*offsetRemainder (3600%15)*/,
745 0 /*deltaMinutes*/,
746 1996 /*untilYear*/,
747 3 /*untilMonth*/,
748 31 /*untilDay*/,
749 240 /*untilTimeCode (3600/15)*/,
750 32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
751 },
752 // 0:00 EU WE%sT
753 {
754 &kZonePolicyEU /*zonePolicy*/,
755 "WE%T" /*format*/,
756 0 /*offsetCode (0/15)*/,
757 0 /*offsetRemainder (0%15)*/,
758 0 /*deltaMinutes*/,
759 32767 /*untilYear*/,
760 1 /*untilMonth*/,
761 1 /*untilDay*/,
762 0 /*untilTimeCode (0/15)*/,
763 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
764 },
765
766 };
767
768 static const char kZoneNameEurope_Lisbon[] ACE_TIME_PROGMEM = "Europe/Lisbon";
769
770 const complete::Info::ZoneInfo kZoneEurope_Lisbon ACE_TIME_PROGMEM = {
771 kZoneNameEurope_Lisbon /*name*/,
772 0x5c00a70b /*zoneId*/,
773 &kZoneContext /*zoneContext*/,
774 4 /*numEras*/,
775 kZoneEraEurope_Lisbon /*eras*/,
776 nullptr /*targetInfo*/,
777 };
778
779 //---------------------------------------------------------------------------
780 // Zone name: Pacific/Apia
781 // Eras: 2
782 //---------------------------------------------------------------------------
783
784 static const complete::Info::ZoneEra kZoneEraPacific_Apia[] ACE_TIME_PROGMEM = {
785 // -11:00 WS %z 2011 Dec 29 24:00
786 {
787 &kZonePolicyWS /*zonePolicy*/,
788 "" /*format*/,
789 -2640 /*offsetCode (-39600/15)*/,
790 0 /*offsetRemainder (-39600%15)*/,
791 0 /*deltaMinutes*/,
792 2011 /*untilYear*/,
793 12 /*untilMonth*/,
794 29 /*untilDay*/,
795 5760 /*untilTimeCode (86400/15)*/,
796 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
797 },
798 // 13:00 WS %z
799 {
800 &kZonePolicyWS /*zonePolicy*/,
801 "" /*format*/,
802 3120 /*offsetCode (46800/15)*/,
803 0 /*offsetRemainder (46800%15)*/,
804 0 /*deltaMinutes*/,
805 32767 /*untilYear*/,
806 1 /*untilMonth*/,
807 1 /*untilDay*/,
808 0 /*untilTimeCode (0/15)*/,
809 0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
810 },
811
812 };
813
814 static const char kZoneNamePacific_Apia[] ACE_TIME_PROGMEM = "Pacific/Apia";
815
816 const complete::Info::ZoneInfo kZonePacific_Apia ACE_TIME_PROGMEM = {
817 kZoneNamePacific_Apia /*name*/,
818 0x23359b5e /*zoneId*/,
819 &kZoneContext /*zoneContext*/,
820 2 /*numEras*/,
821 kZoneEraPacific_Apia /*eras*/,
822 nullptr /*targetInfo*/,
823 };
824
825
826
827 //---------------------------------------------------------------------------
828 // Links: 1
829 //---------------------------------------------------------------------------
830
831 //---------------------------------------------------------------------------
832 // Link name: US/Pacific -> America/Los_Angeles
833 //---------------------------------------------------------------------------
834
835 static const char kZoneNameUS_Pacific[] ACE_TIME_PROGMEM = "US/Pacific";
836
837 const complete::Info::ZoneInfo kZoneUS_Pacific ACE_TIME_PROGMEM = {
838 kZoneNameUS_Pacific /*name*/,
839 0xa950f6ab /*zoneId*/,
840 &kZoneContext /*zoneContext*/,
841 1 /*numEras*/,
842 kZoneEraAmerica_Los_Angeles /*eras*/,
843 &kZoneAmerica_Los_Angeles /*targetInfo*/,
844 };
845
846
847 }
848 }
compat.h
Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...