AceTime  2.3.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 2023c
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/2023c
29 //
30 // Supported Zones: 16 (15 zones, 1 links)
31 // Unsupported Zones: 580 (335 zones, 245 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: 12
47 // Rules: 227
48 //
49 // Memory (8-bits):
50 // Context: 16
51 // Rules: 2043
52 // Policies: 36
53 // Eras: 330
54 // Zones: 195
55 // Links: 13
56 // Registry: 32
57 // Formats: 92
58 // Letters: 23
59 // Fragments: 0
60 // Names: 260 (original: 260)
61 // TOTAL: 3040
62 //
63 // Memory (32-bits):
64 // Context: 24
65 // Rules: 2724
66 // Policies: 96
67 // Eras: 480
68 // Zones: 360
69 // Links: 24
70 // Registry: 64
71 // Formats: 92
72 // Letters: 33
73 // Fragments: 0
74 // Names: 260 (original: 260)
75 // TOTAL: 4157
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 = "2023c";
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 +00/+01 1984 Mar 16
141  {
142  &kZonePolicyMorocco /*zonePolicy*/,
143  "+00/+01" /*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 - +01 1986
153  {
154  nullptr /*zonePolicy*/,
155  "+01" /*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 +00/+01 2018 Oct 28 3:00
165  {
166  &kZonePolicyMorocco /*zonePolicy*/,
167  "+00/+01" /*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 +01/+00
177  {
178  &kZonePolicyMorocco /*zonePolicy*/,
179  "+01/+00" /*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 - -04 2007 Dec 9 3:00
253  {
254  nullptr /*zonePolicy*/,
255  "-04" /*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 - -0430 2016 May 1 2:30
265  {
266  nullptr /*zonePolicy*/,
267  "-0430" /*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 - -04
277  {
278  nullptr /*zonePolicy*/,
279  "-04" /*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 1983 Sep 25 1:00s
689  {
690  &kZonePolicyPort /*zonePolicy*/,
691  "WE%T" /*format*/,
692  0 /*offsetCode*/,
693  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
694  -117 /*untilYearTiny*/,
695  9 /*untilMonth*/,
696  25 /*untilDay*/,
697  4 /*untilTimeCode*/,
698  16 /*untilTimeModifier (kSuffixS + minute=0)*/,
699  },
700  // 0:00 W-Eur WE%sT 1992 Sep 27 1:00s
701  {
702  &kZonePolicyW_Eur /*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  16 /*untilTimeModifier (kSuffixS + 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 -11/-10 2011 Dec 29 24:00
757  {
758  &kZonePolicyWS /*zonePolicy*/,
759  "-11/-10" /*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 +13/+14
769  {
770  &kZonePolicyWS /*zonePolicy*/,
771  "+13/+14" /*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 }
Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...