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