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/testingzonedbx/tzfiles
5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/testingzonedbx
6 // --tz_version 2025b
7 // --action zonedb
8 // --language arduino
9 // --scope extended
10 // --db_namespace testingzonedbx
11 // --zi_namespace extended::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: 1980
53 // Policies: 33
54 // Eras: 330
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: 2929
63 //
64 // Memory (32-bits):
65 // Context: 24
66 // Rules: 2640
67 // Policies: 88
68 // Eras: 480
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: 4020
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 testingzonedbx {
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 extended::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 extended::Info::ZoneEra kZoneEraAfrica_Casablanca[] ACE_TIME_PROGMEM = {
141 // 0:00 Morocco %z 1984 Mar 16
142 {
143 &kZonePolicyMorocco /*zonePolicy*/,
144 "" /*format*/,
145 0 /*offsetCode*/,
146 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
147 -116 /*untilYearTiny*/,
148 3 /*untilMonth*/,
149 16 /*untilDay*/,
150 0 /*untilTimeCode*/,
151 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
152 },
153 // 1:00 - %z 1986
154 {
155 nullptr /*zonePolicy*/,
156 "" /*format*/,
157 4 /*offsetCode*/,
158 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
159 -114 /*untilYearTiny*/,
160 1 /*untilMonth*/,
161 1 /*untilDay*/,
162 0 /*untilTimeCode*/,
163 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
164 },
165 // 0:00 Morocco %z 2018 Oct 28 3:00
166 {
167 &kZonePolicyMorocco /*zonePolicy*/,
168 "" /*format*/,
169 0 /*offsetCode*/,
170 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
171 -82 /*untilYearTiny*/,
172 10 /*untilMonth*/,
173 28 /*untilDay*/,
174 12 /*untilTimeCode*/,
175 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
176 },
177 // 1:00 Morocco %z
178 {
179 &kZonePolicyMorocco /*zonePolicy*/,
180 "" /*format*/,
181 4 /*offsetCode*/,
182 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
183 127 /*untilYearTiny*/,
184 1 /*untilMonth*/,
185 1 /*untilDay*/,
186 0 /*untilTimeCode*/,
187 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
188 },
189
190 };
191
192 static const char kZoneNameAfrica_Casablanca[] ACE_TIME_PROGMEM = "Africa/Casablanca";
193
194 const extended::Info::ZoneInfo kZoneAfrica_Casablanca ACE_TIME_PROGMEM = {
195 kZoneNameAfrica_Casablanca /*name*/,
196 0xc59f1b33 /*zoneId*/,
197 &kZoneContext /*zoneContext*/,
198 4 /*numEras*/,
199 kZoneEraAfrica_Casablanca /*eras*/,
200 nullptr /*targetInfo*/,
201 };
202
203 //---------------------------------------------------------------------------
204 // Zone name: Africa/Windhoek
205 // Eras: 2
206 //---------------------------------------------------------------------------
207
208 static const extended::Info::ZoneEra kZoneEraAfrica_Windhoek[] ACE_TIME_PROGMEM = {
209 // 2:00 - SAST 1990 Mar 21
210 {
211 nullptr /*zonePolicy*/,
212 "SAST" /*format*/,
213 8 /*offsetCode*/,
214 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
215 -110 /*untilYearTiny*/,
216 3 /*untilMonth*/,
217 21 /*untilDay*/,
218 0 /*untilTimeCode*/,
219 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
220 },
221 // 2:00 Namibia %s
222 {
223 &kZonePolicyNamibia /*zonePolicy*/,
224 "%" /*format*/,
225 8 /*offsetCode*/,
226 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
227 127 /*untilYearTiny*/,
228 1 /*untilMonth*/,
229 1 /*untilDay*/,
230 0 /*untilTimeCode*/,
231 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
232 },
233
234 };
235
236 static const char kZoneNameAfrica_Windhoek[] ACE_TIME_PROGMEM = "Africa/Windhoek";
237
238 const extended::Info::ZoneInfo kZoneAfrica_Windhoek ACE_TIME_PROGMEM = {
239 kZoneNameAfrica_Windhoek /*name*/,
240 0x789c9bd3 /*zoneId*/,
241 &kZoneContext /*zoneContext*/,
242 2 /*numEras*/,
243 kZoneEraAfrica_Windhoek /*eras*/,
244 nullptr /*targetInfo*/,
245 };
246
247 //---------------------------------------------------------------------------
248 // Zone name: America/Caracas
249 // Eras: 3
250 //---------------------------------------------------------------------------
251
252 static const extended::Info::ZoneEra kZoneEraAmerica_Caracas[] ACE_TIME_PROGMEM = {
253 // -4:00 - %z 2007 Dec 9 3:00
254 {
255 nullptr /*zonePolicy*/,
256 "" /*format*/,
257 -16 /*offsetCode*/,
258 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
259 -93 /*untilYearTiny*/,
260 12 /*untilMonth*/,
261 9 /*untilDay*/,
262 12 /*untilTimeCode*/,
263 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
264 },
265 // -4:30 - %z 2016 May 1 2:30
266 {
267 nullptr /*zonePolicy*/,
268 "" /*format*/,
269 -18 /*offsetCode*/,
270 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
271 -84 /*untilYearTiny*/,
272 5 /*untilMonth*/,
273 1 /*untilDay*/,
274 10 /*untilTimeCode*/,
275 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
276 },
277 // -4:00 - %z
278 {
279 nullptr /*zonePolicy*/,
280 "" /*format*/,
281 -16 /*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_Caracas[] ACE_TIME_PROGMEM = "America/Caracas";
293
294 const extended::Info::ZoneInfo kZoneAmerica_Caracas ACE_TIME_PROGMEM = {
295 kZoneNameAmerica_Caracas /*name*/,
296 0x3be064f4 /*zoneId*/,
297 &kZoneContext /*zoneContext*/,
298 3 /*numEras*/,
299 kZoneEraAmerica_Caracas /*eras*/,
300 nullptr /*targetInfo*/,
301 };
302
303 //---------------------------------------------------------------------------
304 // Zone name: America/Chicago
305 // Eras: 1
306 //---------------------------------------------------------------------------
307
308 static const extended::Info::ZoneEra kZoneEraAmerica_Chicago[] ACE_TIME_PROGMEM = {
309 // -6:00 US C%sT
310 {
311 &kZonePolicyUS /*zonePolicy*/,
312 "C%T" /*format*/,
313 -24 /*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_Chicago[] ACE_TIME_PROGMEM = "America/Chicago";
325
326 const extended::Info::ZoneInfo kZoneAmerica_Chicago ACE_TIME_PROGMEM = {
327 kZoneNameAmerica_Chicago /*name*/,
328 0x4b92b5d4 /*zoneId*/,
329 &kZoneContext /*zoneContext*/,
330 1 /*numEras*/,
331 kZoneEraAmerica_Chicago /*eras*/,
332 nullptr /*targetInfo*/,
333 };
334
335 //---------------------------------------------------------------------------
336 // Zone name: America/Denver
337 // Eras: 1
338 //---------------------------------------------------------------------------
339
340 static const extended::Info::ZoneEra kZoneEraAmerica_Denver[] ACE_TIME_PROGMEM = {
341 // -7:00 US M%sT
342 {
343 &kZonePolicyUS /*zonePolicy*/,
344 "M%T" /*format*/,
345 -28 /*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_Denver[] ACE_TIME_PROGMEM = "America/Denver";
357
358 const extended::Info::ZoneInfo kZoneAmerica_Denver ACE_TIME_PROGMEM = {
359 kZoneNameAmerica_Denver /*name*/,
360 0x97d10b2a /*zoneId*/,
361 &kZoneContext /*zoneContext*/,
362 1 /*numEras*/,
363 kZoneEraAmerica_Denver /*eras*/,
364 nullptr /*targetInfo*/,
365 };
366
367 //---------------------------------------------------------------------------
368 // Zone name: America/Edmonton
369 // Eras: 2
370 //---------------------------------------------------------------------------
371
372 static const extended::Info::ZoneEra kZoneEraAmerica_Edmonton[] ACE_TIME_PROGMEM = {
373 // -7:00 Edm M%sT 1987
374 {
375 &kZonePolicyEdm /*zonePolicy*/,
376 "M%T" /*format*/,
377 -28 /*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 // -7:00 Canada M%sT
386 {
387 &kZonePolicyCanada /*zonePolicy*/,
388 "M%T" /*format*/,
389 -28 /*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_Edmonton[] ACE_TIME_PROGMEM = "America/Edmonton";
401
402 const extended::Info::ZoneInfo kZoneAmerica_Edmonton ACE_TIME_PROGMEM = {
403 kZoneNameAmerica_Edmonton /*name*/,
404 0x6cb9484a /*zoneId*/,
405 &kZoneContext /*zoneContext*/,
406 2 /*numEras*/,
407 kZoneEraAmerica_Edmonton /*eras*/,
408 nullptr /*targetInfo*/,
409 };
410
411 //---------------------------------------------------------------------------
412 // Zone name: America/Los_Angeles
413 // Eras: 1
414 //---------------------------------------------------------------------------
415
416 static const extended::Info::ZoneEra kZoneEraAmerica_Los_Angeles[] ACE_TIME_PROGMEM = {
417 // -8:00 US P%sT
418 {
419 &kZonePolicyUS /*zonePolicy*/,
420 "P%T" /*format*/,
421 -32 /*offsetCode*/,
422 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
423 127 /*untilYearTiny*/,
424 1 /*untilMonth*/,
425 1 /*untilDay*/,
426 0 /*untilTimeCode*/,
427 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
428 },
429
430 };
431
432 static const char kZoneNameAmerica_Los_Angeles[] ACE_TIME_PROGMEM = "America/Los_Angeles";
433
434 const extended::Info::ZoneInfo kZoneAmerica_Los_Angeles ACE_TIME_PROGMEM = {
435 kZoneNameAmerica_Los_Angeles /*name*/,
436 0xb7f7e8f2 /*zoneId*/,
437 &kZoneContext /*zoneContext*/,
438 1 /*numEras*/,
439 kZoneEraAmerica_Los_Angeles /*eras*/,
440 nullptr /*targetInfo*/,
441 };
442
443 //---------------------------------------------------------------------------
444 // Zone name: America/New_York
445 // Eras: 1
446 //---------------------------------------------------------------------------
447
448 static const extended::Info::ZoneEra kZoneEraAmerica_New_York[] ACE_TIME_PROGMEM = {
449 // -5:00 US E%sT
450 {
451 &kZonePolicyUS /*zonePolicy*/,
452 "E%T" /*format*/,
453 -20 /*offsetCode*/,
454 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
455 127 /*untilYearTiny*/,
456 1 /*untilMonth*/,
457 1 /*untilDay*/,
458 0 /*untilTimeCode*/,
459 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
460 },
461
462 };
463
464 static const char kZoneNameAmerica_New_York[] ACE_TIME_PROGMEM = "America/New_York";
465
466 const extended::Info::ZoneInfo kZoneAmerica_New_York ACE_TIME_PROGMEM = {
467 kZoneNameAmerica_New_York /*name*/,
468 0x1e2a7654 /*zoneId*/,
469 &kZoneContext /*zoneContext*/,
470 1 /*numEras*/,
471 kZoneEraAmerica_New_York /*eras*/,
472 nullptr /*targetInfo*/,
473 };
474
475 //---------------------------------------------------------------------------
476 // Zone name: America/Toronto
477 // Eras: 1
478 //---------------------------------------------------------------------------
479
480 static const extended::Info::ZoneEra kZoneEraAmerica_Toronto[] ACE_TIME_PROGMEM = {
481 // -5:00 Canada E%sT
482 {
483 &kZonePolicyCanada /*zonePolicy*/,
484 "E%T" /*format*/,
485 -20 /*offsetCode*/,
486 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
487 127 /*untilYearTiny*/,
488 1 /*untilMonth*/,
489 1 /*untilDay*/,
490 0 /*untilTimeCode*/,
491 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
492 },
493
494 };
495
496 static const char kZoneNameAmerica_Toronto[] ACE_TIME_PROGMEM = "America/Toronto";
497
498 const extended::Info::ZoneInfo kZoneAmerica_Toronto ACE_TIME_PROGMEM = {
499 kZoneNameAmerica_Toronto /*name*/,
500 0x792e851b /*zoneId*/,
501 &kZoneContext /*zoneContext*/,
502 1 /*numEras*/,
503 kZoneEraAmerica_Toronto /*eras*/,
504 nullptr /*targetInfo*/,
505 };
506
507 //---------------------------------------------------------------------------
508 // Zone name: America/Vancouver
509 // Eras: 2
510 //---------------------------------------------------------------------------
511
512 static const extended::Info::ZoneEra kZoneEraAmerica_Vancouver[] ACE_TIME_PROGMEM = {
513 // -8:00 Vanc P%sT 1987
514 {
515 &kZonePolicyVanc /*zonePolicy*/,
516 "P%T" /*format*/,
517 -32 /*offsetCode*/,
518 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
519 -113 /*untilYearTiny*/,
520 1 /*untilMonth*/,
521 1 /*untilDay*/,
522 0 /*untilTimeCode*/,
523 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
524 },
525 // -8:00 Canada P%sT
526 {
527 &kZonePolicyCanada /*zonePolicy*/,
528 "P%T" /*format*/,
529 -32 /*offsetCode*/,
530 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
531 127 /*untilYearTiny*/,
532 1 /*untilMonth*/,
533 1 /*untilDay*/,
534 0 /*untilTimeCode*/,
535 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
536 },
537
538 };
539
540 static const char kZoneNameAmerica_Vancouver[] ACE_TIME_PROGMEM = "America/Vancouver";
541
542 const extended::Info::ZoneInfo kZoneAmerica_Vancouver ACE_TIME_PROGMEM = {
543 kZoneNameAmerica_Vancouver /*name*/,
544 0x2c6f6b1f /*zoneId*/,
545 &kZoneContext /*zoneContext*/,
546 2 /*numEras*/,
547 kZoneEraAmerica_Vancouver /*eras*/,
548 nullptr /*targetInfo*/,
549 };
550
551 //---------------------------------------------------------------------------
552 // Zone name: America/Whitehorse
553 // Eras: 3
554 //---------------------------------------------------------------------------
555
556 static const extended::Info::ZoneEra kZoneEraAmerica_Whitehorse[] ACE_TIME_PROGMEM = {
557 // -8:00 - PST 1980
558 {
559 nullptr /*zonePolicy*/,
560 "PST" /*format*/,
561 -32 /*offsetCode*/,
562 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
563 -120 /*untilYearTiny*/,
564 1 /*untilMonth*/,
565 1 /*untilDay*/,
566 0 /*untilTimeCode*/,
567 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
568 },
569 // -8:00 Canada P%sT 2020 Nov 1
570 {
571 &kZonePolicyCanada /*zonePolicy*/,
572 "P%T" /*format*/,
573 -32 /*offsetCode*/,
574 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
575 -80 /*untilYearTiny*/,
576 11 /*untilMonth*/,
577 1 /*untilDay*/,
578 0 /*untilTimeCode*/,
579 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
580 },
581 // -7:00 - MST
582 {
583 nullptr /*zonePolicy*/,
584 "MST" /*format*/,
585 -28 /*offsetCode*/,
586 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
587 127 /*untilYearTiny*/,
588 1 /*untilMonth*/,
589 1 /*untilDay*/,
590 0 /*untilTimeCode*/,
591 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
592 },
593
594 };
595
596 static const char kZoneNameAmerica_Whitehorse[] ACE_TIME_PROGMEM = "America/Whitehorse";
597
598 const extended::Info::ZoneInfo kZoneAmerica_Whitehorse ACE_TIME_PROGMEM = {
599 kZoneNameAmerica_Whitehorse /*name*/,
600 0x54e0e3e8 /*zoneId*/,
601 &kZoneContext /*zoneContext*/,
602 3 /*numEras*/,
603 kZoneEraAmerica_Whitehorse /*eras*/,
604 nullptr /*targetInfo*/,
605 };
606
607 //---------------------------------------------------------------------------
608 // Zone name: America/Winnipeg
609 // Eras: 2
610 //---------------------------------------------------------------------------
611
612 static const extended::Info::ZoneEra kZoneEraAmerica_Winnipeg[] ACE_TIME_PROGMEM = {
613 // -6:00 Winn C%sT 2006
614 {
615 &kZonePolicyWinn /*zonePolicy*/,
616 "C%T" /*format*/,
617 -24 /*offsetCode*/,
618 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
619 -94 /*untilYearTiny*/,
620 1 /*untilMonth*/,
621 1 /*untilDay*/,
622 0 /*untilTimeCode*/,
623 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
624 },
625 // -6:00 Canada C%sT
626 {
627 &kZonePolicyCanada /*zonePolicy*/,
628 "C%T" /*format*/,
629 -24 /*offsetCode*/,
630 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
631 127 /*untilYearTiny*/,
632 1 /*untilMonth*/,
633 1 /*untilDay*/,
634 0 /*untilTimeCode*/,
635 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
636 },
637
638 };
639
640 static const char kZoneNameAmerica_Winnipeg[] ACE_TIME_PROGMEM = "America/Winnipeg";
641
642 const extended::Info::ZoneInfo kZoneAmerica_Winnipeg ACE_TIME_PROGMEM = {
643 kZoneNameAmerica_Winnipeg /*name*/,
644 0x8c7dafc7 /*zoneId*/,
645 &kZoneContext /*zoneContext*/,
646 2 /*numEras*/,
647 kZoneEraAmerica_Winnipeg /*eras*/,
648 nullptr /*targetInfo*/,
649 };
650
651 //---------------------------------------------------------------------------
652 // Zone name: Australia/Darwin
653 // Eras: 1
654 //---------------------------------------------------------------------------
655
656 static const extended::Info::ZoneEra kZoneEraAustralia_Darwin[] ACE_TIME_PROGMEM = {
657 // 9:30 Aus AC%sT
658 {
659 &kZonePolicyAus /*zonePolicy*/,
660 "AC%T" /*format*/,
661 38 /*offsetCode*/,
662 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
663 127 /*untilYearTiny*/,
664 1 /*untilMonth*/,
665 1 /*untilDay*/,
666 0 /*untilTimeCode*/,
667 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
668 },
669
670 };
671
672 static const char kZoneNameAustralia_Darwin[] ACE_TIME_PROGMEM = "Australia/Darwin";
673
674 const extended::Info::ZoneInfo kZoneAustralia_Darwin ACE_TIME_PROGMEM = {
675 kZoneNameAustralia_Darwin /*name*/,
676 0x2876bdff /*zoneId*/,
677 &kZoneContext /*zoneContext*/,
678 1 /*numEras*/,
679 kZoneEraAustralia_Darwin /*eras*/,
680 nullptr /*targetInfo*/,
681 };
682
683 //---------------------------------------------------------------------------
684 // Zone name: Europe/Lisbon
685 // Eras: 4
686 //---------------------------------------------------------------------------
687
688 static const extended::Info::ZoneEra kZoneEraEurope_Lisbon[] ACE_TIME_PROGMEM = {
689 // 0:00 Port WE%sT 1986
690 {
691 &kZonePolicyPort /*zonePolicy*/,
692 "WE%T" /*format*/,
693 0 /*offsetCode*/,
694 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
695 -114 /*untilYearTiny*/,
696 1 /*untilMonth*/,
697 1 /*untilDay*/,
698 0 /*untilTimeCode*/,
699 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
700 },
701 // 0:00 EU WE%sT 1992 Sep 27 1:00u
702 {
703 &kZonePolicyEU /*zonePolicy*/,
704 "WE%T" /*format*/,
705 0 /*offsetCode*/,
706 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
707 -108 /*untilYearTiny*/,
708 9 /*untilMonth*/,
709 27 /*untilDay*/,
710 4 /*untilTimeCode*/,
711 32 /*untilTimeModifier (kSuffixU + minute=0)*/,
712 },
713 // 1:00 EU CE%sT 1996 Mar 31 1:00u
714 {
715 &kZonePolicyEU /*zonePolicy*/,
716 "CE%T" /*format*/,
717 4 /*offsetCode*/,
718 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
719 -104 /*untilYearTiny*/,
720 3 /*untilMonth*/,
721 31 /*untilDay*/,
722 4 /*untilTimeCode*/,
723 32 /*untilTimeModifier (kSuffixU + minute=0)*/,
724 },
725 // 0:00 EU WE%sT
726 {
727 &kZonePolicyEU /*zonePolicy*/,
728 "WE%T" /*format*/,
729 0 /*offsetCode*/,
730 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
731 127 /*untilYearTiny*/,
732 1 /*untilMonth*/,
733 1 /*untilDay*/,
734 0 /*untilTimeCode*/,
735 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
736 },
737
738 };
739
740 static const char kZoneNameEurope_Lisbon[] ACE_TIME_PROGMEM = "Europe/Lisbon";
741
742 const extended::Info::ZoneInfo kZoneEurope_Lisbon ACE_TIME_PROGMEM = {
743 kZoneNameEurope_Lisbon /*name*/,
744 0x5c00a70b /*zoneId*/,
745 &kZoneContext /*zoneContext*/,
746 4 /*numEras*/,
747 kZoneEraEurope_Lisbon /*eras*/,
748 nullptr /*targetInfo*/,
749 };
750
751 //---------------------------------------------------------------------------
752 // Zone name: Pacific/Apia
753 // Eras: 2
754 //---------------------------------------------------------------------------
755
756 static const extended::Info::ZoneEra kZoneEraPacific_Apia[] ACE_TIME_PROGMEM = {
757 // -11:00 WS %z 2011 Dec 29 24:00
758 {
759 &kZonePolicyWS /*zonePolicy*/,
760 "" /*format*/,
761 -44 /*offsetCode*/,
762 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
763 -89 /*untilYearTiny*/,
764 12 /*untilMonth*/,
765 29 /*untilDay*/,
766 96 /*untilTimeCode*/,
767 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
768 },
769 // 13:00 WS %z
770 {
771 &kZonePolicyWS /*zonePolicy*/,
772 "" /*format*/,
773 52 /*offsetCode*/,
774 4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
775 127 /*untilYearTiny*/,
776 1 /*untilMonth*/,
777 1 /*untilDay*/,
778 0 /*untilTimeCode*/,
779 0 /*untilTimeModifier (kSuffixW + minute=0)*/,
780 },
781
782 };
783
784 static const char kZoneNamePacific_Apia[] ACE_TIME_PROGMEM = "Pacific/Apia";
785
786 const extended::Info::ZoneInfo kZonePacific_Apia ACE_TIME_PROGMEM = {
787 kZoneNamePacific_Apia /*name*/,
788 0x23359b5e /*zoneId*/,
789 &kZoneContext /*zoneContext*/,
790 2 /*numEras*/,
791 kZoneEraPacific_Apia /*eras*/,
792 nullptr /*targetInfo*/,
793 };
794
795
796
797 //---------------------------------------------------------------------------
798 // Links: 1
799 //---------------------------------------------------------------------------
800
801 //---------------------------------------------------------------------------
802 // Link name: US/Pacific -> America/Los_Angeles
803 //---------------------------------------------------------------------------
804
805 static const char kZoneNameUS_Pacific[] ACE_TIME_PROGMEM = "US/Pacific";
806
807 const extended::Info::ZoneInfo kZoneUS_Pacific ACE_TIME_PROGMEM = {
808 kZoneNameUS_Pacific /*name*/,
809 0xa950f6ab /*zoneId*/,
810 &kZoneContext /*zoneContext*/,
811 1 /*numEras*/,
812 kZoneEraAmerica_Los_Angeles /*eras*/,
813 &kZoneAmerica_Los_Angeles /*targetInfo*/,
814 };
815
816
817 }
818 }
compat.h
Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...