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