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/tzonedb/tzfiles
5 // --output_dir /home/brian/src/AceTime/src/tzonedb
6 // --tz_version 2022g
7 // --action zonedb
8 // --language arduino
9 // --scope basic
10 // --db_namespace tzonedb
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: 12 (11 zones, 1 links)
32 // Unsupported Zones: 584 (340 zones, 244 links)
33 //
34 // Original Years: [1844,2087]
35 // Generated Years: [1945,2007]
36 // Estimator Years: [1945,2009]
37 // Max Buffer Size: 6
38 //
39 // Records:
40 // Infos: 12
41 // Eras: 15
42 // Policies: 8
43 // Rules: 32
44 //
45 // Memory (8-bits):
46 // Rules: 352
47 // Policies: 24
48 // Eras: 180
49 // Zones: 143
50 // Links: 13
51 // Registry: 24
52 // Formats: 38
53 // Letters: 11
54 // Fragments: 0
55 // Names: 202 (original: 202)
56 // TOTAL: 987
57 //
58 // Memory (32-bits):
59 // Rules: 384
60 // Policies: 64
61 // Eras: 240
62 // Zones: 264
63 // Links: 24
64 // Registry: 48
65 // Formats: 38
66 // Letters: 17
67 // Fragments: 0
68 // Names: 202 (original: 202)
69 // TOTAL: 1281
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 tzonedb {
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*/ "D",
94 /*2*/ "S",
95 
96 };
97 
98 const internal::ZoneContext kZoneContext = {
99  1980 /*startYear*/,
100  10000 /*untilYear*/,
101  6 /*maxTransitions*/,
102  kTzDatabaseVersion /*tzVersion*/,
103  1 /*numFragments*/,
104  3 /*numLetters*/,
105  kFragments /*fragments*/,
106  kLetters /*letters*/,
107 };
108 
109 //---------------------------------------------------------------------------
110 // Zones: 11
111 // Eras: 15
112 //---------------------------------------------------------------------------
113 
114 //---------------------------------------------------------------------------
115 // Zone name: Africa/Johannesburg
116 // Eras: 1
117 //---------------------------------------------------------------------------
118 
119 static const basic::ZoneEra kZoneEraAfrica_Johannesburg[] ACE_TIME_PROGMEM = {
120  // 2:00 SA SAST
121  {
122  &kZonePolicySA /*zonePolicy*/,
123  "SAST" /*format*/,
124  8 /*offsetCode*/,
125  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
126  32767 /*untilYear*/,
127  1 /*untilMonth*/,
128  1 /*untilDay*/,
129  0 /*untilTimeCode*/,
130  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
131  },
132 
133 };
134 
135 static const char kZoneNameAfrica_Johannesburg[] ACE_TIME_PROGMEM = "Africa/Johannesburg";
136 
137 const basic::ZoneInfo kZoneAfrica_Johannesburg ACE_TIME_PROGMEM = {
138  kZoneNameAfrica_Johannesburg /*name*/,
139  0xd5d157a0 /*zoneId*/,
140  &kZoneContext /*zoneContext*/,
141  1 /*numEras*/,
142  kZoneEraAfrica_Johannesburg /*eras*/,
143  nullptr /*targetInfo*/,
144 };
145 
146 //---------------------------------------------------------------------------
147 // Zone name: America/Chicago
148 // Eras: 1
149 //---------------------------------------------------------------------------
150 
151 static const basic::ZoneEra kZoneEraAmerica_Chicago[] ACE_TIME_PROGMEM = {
152  // -6:00 US C%sT
153  {
154  &kZonePolicyUS /*zonePolicy*/,
155  "C%T" /*format*/,
156  -24 /*offsetCode*/,
157  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
158  32767 /*untilYear*/,
159  1 /*untilMonth*/,
160  1 /*untilDay*/,
161  0 /*untilTimeCode*/,
162  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
163  },
164 
165 };
166 
167 static const char kZoneNameAmerica_Chicago[] ACE_TIME_PROGMEM = "America/Chicago";
168 
169 const basic::ZoneInfo kZoneAmerica_Chicago ACE_TIME_PROGMEM = {
170  kZoneNameAmerica_Chicago /*name*/,
171  0x4b92b5d4 /*zoneId*/,
172  &kZoneContext /*zoneContext*/,
173  1 /*numEras*/,
174  kZoneEraAmerica_Chicago /*eras*/,
175  nullptr /*targetInfo*/,
176 };
177 
178 //---------------------------------------------------------------------------
179 // Zone name: America/Denver
180 // Eras: 1
181 //---------------------------------------------------------------------------
182 
183 static const basic::ZoneEra kZoneEraAmerica_Denver[] ACE_TIME_PROGMEM = {
184  // -7:00 US M%sT
185  {
186  &kZonePolicyUS /*zonePolicy*/,
187  "M%T" /*format*/,
188  -28 /*offsetCode*/,
189  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
190  32767 /*untilYear*/,
191  1 /*untilMonth*/,
192  1 /*untilDay*/,
193  0 /*untilTimeCode*/,
194  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
195  },
196 
197 };
198 
199 static const char kZoneNameAmerica_Denver[] ACE_TIME_PROGMEM = "America/Denver";
200 
201 const basic::ZoneInfo kZoneAmerica_Denver ACE_TIME_PROGMEM = {
202  kZoneNameAmerica_Denver /*name*/,
203  0x97d10b2a /*zoneId*/,
204  &kZoneContext /*zoneContext*/,
205  1 /*numEras*/,
206  kZoneEraAmerica_Denver /*eras*/,
207  nullptr /*targetInfo*/,
208 };
209 
210 //---------------------------------------------------------------------------
211 // Zone name: America/Edmonton
212 // Eras: 2
213 //---------------------------------------------------------------------------
214 
215 static const basic::ZoneEra kZoneEraAmerica_Edmonton[] ACE_TIME_PROGMEM = {
216  // -7:00 Edm M%sT 1987
217  {
218  &kZonePolicyEdm /*zonePolicy*/,
219  "M%T" /*format*/,
220  -28 /*offsetCode*/,
221  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
222  1987 /*untilYear*/,
223  1 /*untilMonth*/,
224  1 /*untilDay*/,
225  0 /*untilTimeCode*/,
226  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
227  },
228  // -7:00 Canada M%sT
229  {
230  &kZonePolicyCanada /*zonePolicy*/,
231  "M%T" /*format*/,
232  -28 /*offsetCode*/,
233  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
234  32767 /*untilYear*/,
235  1 /*untilMonth*/,
236  1 /*untilDay*/,
237  0 /*untilTimeCode*/,
238  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
239  },
240 
241 };
242 
243 static const char kZoneNameAmerica_Edmonton[] ACE_TIME_PROGMEM = "America/Edmonton";
244 
245 const basic::ZoneInfo kZoneAmerica_Edmonton ACE_TIME_PROGMEM = {
246  kZoneNameAmerica_Edmonton /*name*/,
247  0x6cb9484a /*zoneId*/,
248  &kZoneContext /*zoneContext*/,
249  2 /*numEras*/,
250  kZoneEraAmerica_Edmonton /*eras*/,
251  nullptr /*targetInfo*/,
252 };
253 
254 //---------------------------------------------------------------------------
255 // Zone name: America/Los_Angeles
256 // Eras: 1
257 //---------------------------------------------------------------------------
258 
259 static const basic::ZoneEra kZoneEraAmerica_Los_Angeles[] ACE_TIME_PROGMEM = {
260  // -8:00 US P%sT
261  {
262  &kZonePolicyUS /*zonePolicy*/,
263  "P%T" /*format*/,
264  -32 /*offsetCode*/,
265  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
266  32767 /*untilYear*/,
267  1 /*untilMonth*/,
268  1 /*untilDay*/,
269  0 /*untilTimeCode*/,
270  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
271  },
272 
273 };
274 
275 static const char kZoneNameAmerica_Los_Angeles[] ACE_TIME_PROGMEM = "America/Los_Angeles";
276 
277 const basic::ZoneInfo kZoneAmerica_Los_Angeles ACE_TIME_PROGMEM = {
278  kZoneNameAmerica_Los_Angeles /*name*/,
279  0xb7f7e8f2 /*zoneId*/,
280  &kZoneContext /*zoneContext*/,
281  1 /*numEras*/,
282  kZoneEraAmerica_Los_Angeles /*eras*/,
283  nullptr /*targetInfo*/,
284 };
285 
286 //---------------------------------------------------------------------------
287 // Zone name: America/New_York
288 // Eras: 1
289 //---------------------------------------------------------------------------
290 
291 static const basic::ZoneEra kZoneEraAmerica_New_York[] ACE_TIME_PROGMEM = {
292  // -5:00 US E%sT
293  {
294  &kZonePolicyUS /*zonePolicy*/,
295  "E%T" /*format*/,
296  -20 /*offsetCode*/,
297  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
298  32767 /*untilYear*/,
299  1 /*untilMonth*/,
300  1 /*untilDay*/,
301  0 /*untilTimeCode*/,
302  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
303  },
304 
305 };
306 
307 static const char kZoneNameAmerica_New_York[] ACE_TIME_PROGMEM = "America/New_York";
308 
309 const basic::ZoneInfo kZoneAmerica_New_York ACE_TIME_PROGMEM = {
310  kZoneNameAmerica_New_York /*name*/,
311  0x1e2a7654 /*zoneId*/,
312  &kZoneContext /*zoneContext*/,
313  1 /*numEras*/,
314  kZoneEraAmerica_New_York /*eras*/,
315  nullptr /*targetInfo*/,
316 };
317 
318 //---------------------------------------------------------------------------
319 // Zone name: America/Toronto
320 // Eras: 1
321 //---------------------------------------------------------------------------
322 
323 static const basic::ZoneEra kZoneEraAmerica_Toronto[] ACE_TIME_PROGMEM = {
324  // -5:00 Canada E%sT
325  {
326  &kZonePolicyCanada /*zonePolicy*/,
327  "E%T" /*format*/,
328  -20 /*offsetCode*/,
329  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
330  32767 /*untilYear*/,
331  1 /*untilMonth*/,
332  1 /*untilDay*/,
333  0 /*untilTimeCode*/,
334  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
335  },
336 
337 };
338 
339 static const char kZoneNameAmerica_Toronto[] ACE_TIME_PROGMEM = "America/Toronto";
340 
341 const basic::ZoneInfo kZoneAmerica_Toronto ACE_TIME_PROGMEM = {
342  kZoneNameAmerica_Toronto /*name*/,
343  0x792e851b /*zoneId*/,
344  &kZoneContext /*zoneContext*/,
345  1 /*numEras*/,
346  kZoneEraAmerica_Toronto /*eras*/,
347  nullptr /*targetInfo*/,
348 };
349 
350 //---------------------------------------------------------------------------
351 // Zone name: America/Vancouver
352 // Eras: 2
353 //---------------------------------------------------------------------------
354 
355 static const basic::ZoneEra kZoneEraAmerica_Vancouver[] ACE_TIME_PROGMEM = {
356  // -8:00 Vanc P%sT 1987
357  {
358  &kZonePolicyVanc /*zonePolicy*/,
359  "P%T" /*format*/,
360  -32 /*offsetCode*/,
361  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
362  1987 /*untilYear*/,
363  1 /*untilMonth*/,
364  1 /*untilDay*/,
365  0 /*untilTimeCode*/,
366  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
367  },
368  // -8:00 Canada P%sT
369  {
370  &kZonePolicyCanada /*zonePolicy*/,
371  "P%T" /*format*/,
372  -32 /*offsetCode*/,
373  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
374  32767 /*untilYear*/,
375  1 /*untilMonth*/,
376  1 /*untilDay*/,
377  0 /*untilTimeCode*/,
378  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
379  },
380 
381 };
382 
383 static const char kZoneNameAmerica_Vancouver[] ACE_TIME_PROGMEM = "America/Vancouver";
384 
385 const basic::ZoneInfo kZoneAmerica_Vancouver ACE_TIME_PROGMEM = {
386  kZoneNameAmerica_Vancouver /*name*/,
387  0x2c6f6b1f /*zoneId*/,
388  &kZoneContext /*zoneContext*/,
389  2 /*numEras*/,
390  kZoneEraAmerica_Vancouver /*eras*/,
391  nullptr /*targetInfo*/,
392 };
393 
394 //---------------------------------------------------------------------------
395 // Zone name: America/Winnipeg
396 // Eras: 2
397 //---------------------------------------------------------------------------
398 
399 static const basic::ZoneEra kZoneEraAmerica_Winnipeg[] ACE_TIME_PROGMEM = {
400  // -6:00 Winn C%sT 2006
401  {
402  &kZonePolicyWinn /*zonePolicy*/,
403  "C%T" /*format*/,
404  -24 /*offsetCode*/,
405  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
406  2006 /*untilYear*/,
407  1 /*untilMonth*/,
408  1 /*untilDay*/,
409  0 /*untilTimeCode*/,
410  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
411  },
412  // -6:00 Canada C%sT
413  {
414  &kZonePolicyCanada /*zonePolicy*/,
415  "C%T" /*format*/,
416  -24 /*offsetCode*/,
417  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
418  32767 /*untilYear*/,
419  1 /*untilMonth*/,
420  1 /*untilDay*/,
421  0 /*untilTimeCode*/,
422  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
423  },
424 
425 };
426 
427 static const char kZoneNameAmerica_Winnipeg[] ACE_TIME_PROGMEM = "America/Winnipeg";
428 
429 const basic::ZoneInfo kZoneAmerica_Winnipeg ACE_TIME_PROGMEM = {
430  kZoneNameAmerica_Winnipeg /*name*/,
431  0x8c7dafc7 /*zoneId*/,
432  &kZoneContext /*zoneContext*/,
433  2 /*numEras*/,
434  kZoneEraAmerica_Winnipeg /*eras*/,
435  nullptr /*targetInfo*/,
436 };
437 
438 //---------------------------------------------------------------------------
439 // Zone name: Australia/Darwin
440 // Eras: 1
441 //---------------------------------------------------------------------------
442 
443 static const basic::ZoneEra kZoneEraAustralia_Darwin[] ACE_TIME_PROGMEM = {
444  // 9:30 Aus AC%sT
445  {
446  &kZonePolicyAus /*zonePolicy*/,
447  "AC%T" /*format*/,
448  38 /*offsetCode*/,
449  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
450  32767 /*untilYear*/,
451  1 /*untilMonth*/,
452  1 /*untilDay*/,
453  0 /*untilTimeCode*/,
454  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
455  },
456 
457 };
458 
459 static const char kZoneNameAustralia_Darwin[] ACE_TIME_PROGMEM = "Australia/Darwin";
460 
461 const basic::ZoneInfo kZoneAustralia_Darwin ACE_TIME_PROGMEM = {
462  kZoneNameAustralia_Darwin /*name*/,
463  0x2876bdff /*zoneId*/,
464  &kZoneContext /*zoneContext*/,
465  1 /*numEras*/,
466  kZoneEraAustralia_Darwin /*eras*/,
467  nullptr /*targetInfo*/,
468 };
469 
470 //---------------------------------------------------------------------------
471 // Zone name: Pacific/Galapagos
472 // Eras: 2
473 //---------------------------------------------------------------------------
474 
475 static const basic::ZoneEra kZoneEraPacific_Galapagos[] ACE_TIME_PROGMEM = {
476  // -5:00 - -05 1986
477  {
478  nullptr /*zonePolicy*/,
479  "-05" /*format*/,
480  -20 /*offsetCode*/,
481  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
482  1986 /*untilYear*/,
483  1 /*untilMonth*/,
484  1 /*untilDay*/,
485  0 /*untilTimeCode*/,
486  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
487  },
488  // -6:00 Ecuador -06/-05
489  {
490  &kZonePolicyEcuador /*zonePolicy*/,
491  "-06/-05" /*format*/,
492  -24 /*offsetCode*/,
493  4 /*deltaCode (((offsetMinute=0) << 4) + ((deltaMinutes=0)/15 + 4))*/,
494  32767 /*untilYear*/,
495  1 /*untilMonth*/,
496  1 /*untilDay*/,
497  0 /*untilTimeCode*/,
498  0 /*untilTimeModifier (kSuffixW + minute=0)*/,
499  },
500 
501 };
502 
503 static const char kZoneNamePacific_Galapagos[] ACE_TIME_PROGMEM = "Pacific/Galapagos";
504 
505 const basic::ZoneInfo kZonePacific_Galapagos ACE_TIME_PROGMEM = {
506  kZoneNamePacific_Galapagos /*name*/,
507  0xa952f752 /*zoneId*/,
508  &kZoneContext /*zoneContext*/,
509  2 /*numEras*/,
510  kZoneEraPacific_Galapagos /*eras*/,
511  nullptr /*targetInfo*/,
512 };
513 
514 
515 
516 //---------------------------------------------------------------------------
517 // Links: 1
518 //---------------------------------------------------------------------------
519 
520 //---------------------------------------------------------------------------
521 // Link name: US/Pacific -> America/Los_Angeles
522 //---------------------------------------------------------------------------
523 
524 static const char kZoneNameUS_Pacific[] ACE_TIME_PROGMEM = "US/Pacific";
525 
526 const basic::ZoneInfo kZoneUS_Pacific ACE_TIME_PROGMEM = {
527  kZoneNameUS_Pacific /*name*/,
528  0xa950f6ab /*zoneId*/,
529  &kZoneContext /*zoneContext*/,
530  1 /*numEras*/,
531  kZoneEraAmerica_Los_Angeles /*eras*/,
532  &kZoneAmerica_Los_Angeles /*targetInfo*/,
533 };
534 
535 
536 }
537 }
Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...