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 }
Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...