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