Added the utility program used to generate timezone-specific iCalendar information, and the original .ics files generated by the utility program in 2010.
- Legacy-Id: 6496
This commit is contained in:
parent
16ae35ae19
commit
8cf4cd4e4e
57
vzic/ChangeLog
Normal file
57
vzic/ChangeLog
Normal file
|
@ -0,0 +1,57 @@
|
|||
2006-03-18 Damon Chaplin <damon@gnome.org>
|
||||
|
||||
* Released Vzic 1.3
|
||||
|
||||
2006-03-18 Damon Chaplin <damon@gnome.org>
|
||||
|
||||
* vzic-output.c (expand_tzname): added special case for America/Nome.
|
||||
(output_rrule): made hacks a bit more general, to handle Asia/Gaza
|
||||
which now has a day=4 rule. At some point we should check what newer
|
||||
versions of Outlook can handle so we can be more accurate.
|
||||
|
||||
* vzic-dump.c (dump_time_zone_names): try looking for timezone info
|
||||
using original and linked name.
|
||||
|
||||
* README, *.c: fixed spelling 'compatable' -> 'compatible'.
|
||||
|
||||
* vzic.c: patch from Jonathan Guthrie to support a --olson-dir option.
|
||||
|
||||
2003-10-25 Damon Chaplin <damon@gnome.org>
|
||||
|
||||
* Released Vzic 1.2
|
||||
|
||||
2003-10-25 Damon Chaplin <damon@gnome.org>
|
||||
|
||||
* vzic-output.c:
|
||||
* Makefile: moved the PRODUCT_ID and TZID_PREFIX settings to the
|
||||
Makefile and changed the default so people don't accidentally use
|
||||
the same IDs as Evolution.
|
||||
|
||||
* vzic-parse.c (parse_time): substitute 23:59:59 when we read a time
|
||||
of 24:00:00. This is a bit of a kludge to avoid problems, since
|
||||
24:00:00 is not a valid iCalendar time. Since 24:00:00 is only used
|
||||
for a few timezones in the 1930s it doesn't matter too much.
|
||||
|
||||
To write a correct fix we'd need to review all the code that deals
|
||||
with times to see if it would be affected, e.g. a time of 24:00 on
|
||||
one day should be considered equal to 0:00 the next day.
|
||||
|
||||
We'd also need to adjust the output times to use 0:00 the next day
|
||||
rather than 24:00. If we need to output recurrence rules that would
|
||||
be a problem, since 'last saturday at 24:00' can't be easily
|
||||
converted to another rule that uses 0:00 instead.
|
||||
|
||||
2003-10-22 Damon Chaplin <damon@gnome.org>
|
||||
|
||||
* Released Vzic 1.1
|
||||
|
||||
2003-10-22 Damon Chaplin <damon@gnome.org>
|
||||
|
||||
* vzic-parse.c (parse_time): allow a time of 24:00, as used in
|
||||
the America/Montreal and America/Toronto rules in the 1930s!
|
||||
I'm not 100% sure the rest of the code will handle this OK, but
|
||||
it only affects the 'pure' output.
|
||||
|
||||
2003-09-01 Damon Chaplin <damon@gnome.org>
|
||||
|
||||
* Released Vzic 1.0
|
90
vzic/Makefile
Normal file
90
vzic/Makefile
Normal file
|
@ -0,0 +1,90 @@
|
|||
|
||||
#
|
||||
# You will need to set this to the directory that the Olson timezone data
|
||||
# files are in.
|
||||
#
|
||||
OLSON_DIR = /usr/share/olson-icalendar/
|
||||
|
||||
|
||||
# This is used as the PRODID property on the iCalendar files output.
|
||||
# It identifies the product which created the iCalendar objects.
|
||||
# So you need to substitute your own organization name and product.
|
||||
PRODUCT_ID = -//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
|
||||
# This is what libical-evolution uses.
|
||||
#PRODUCT_ID = -//Ximian//NONSGML Evolution Olson-VTIMEZONE Converter//EN
|
||||
|
||||
|
||||
# This is used to create unique IDs for each VTIMEZONE component.
|
||||
# The prefix is put before each timezone city name. It should start and end
|
||||
# with a '/'. The first part, i.e. 'myorganization.org' below, should be
|
||||
# a unique vendor ID, e.g. use a hostname. The part after that can be
|
||||
# anything you want. We use a date and version number for libical. The %D
|
||||
# gets expanded to today's date. There is also a vzic-merge.pl which can be
|
||||
# used to merge changes into a master set of VTIMEZONEs. If a VTIMEZONE has
|
||||
# changed, it bumps the version number on the end of this prefix. */
|
||||
TZID_PREFIX = /tools.ietf.org/Olson_%D_1/
|
||||
#TZID_PREFIX = /
|
||||
|
||||
# This is what libical-evolution uses.
|
||||
#TZID_PREFIX = /softwarestudio.org/Olson_%D_1/
|
||||
|
||||
|
||||
# Set any -I include directories to find the libical header files, and the
|
||||
# libical library to link with. You only need these if you want to run the
|
||||
# tests. You may need to change the '#include <ical.h>' line at the top of
|
||||
# test-vzic.c as well.
|
||||
LIBICAL_CFLAGS =
|
||||
LIBICAL_LDADD = -lical-evolution
|
||||
|
||||
|
||||
#
|
||||
# You shouldn't need to change the rest of the file.
|
||||
#
|
||||
|
||||
GLIB_CFLAGS = `pkg-config --cflags glib-2.0`
|
||||
GLIB_LDADD = `pkg-config --libs glib-2.0`
|
||||
|
||||
CFLAGS = -g -DOLSON_DIR=\"$(OLSON_DIR)\" -DPRODUCT_ID='"$(PRODUCT_ID)"' -DTZID_PREFIX='"$(TZID_PREFIX)"' $(GLIB_CFLAGS) $(LIBICAL_CFLAGS)
|
||||
|
||||
OBJECTS = vzic.o vzic-parse.o vzic-dump.o vzic-output.o
|
||||
|
||||
all: vzic
|
||||
|
||||
vzic: $(OBJECTS)
|
||||
$(CC) $(OBJECTS) $(GLIB_LDADD) -o vzic
|
||||
|
||||
test-vzic: test-vzic.o
|
||||
$(CC) test-vzic.o $(LIBICAL_LDADD) -o test-vzic
|
||||
|
||||
# Dependencies.
|
||||
$(OBJECTS): vzic.h
|
||||
vzic.o vzic-parse.o: vzic-parse.h
|
||||
vzic.o vzic-dump.o: vzic-dump.h
|
||||
vzic.o vzic-output.o: vzic-output.h
|
||||
|
||||
test-parse: vzic
|
||||
./vzic-dump.pl $(OLSON_DIR)
|
||||
./vzic --dump --pure
|
||||
@echo
|
||||
@echo "#"
|
||||
@echo "# If either of these diff commands outputs anything there may be a problem."
|
||||
@echo "#"
|
||||
diff -ru zoneinfo/ZonesPerl zoneinfo/ZonesVzic
|
||||
diff -ru zoneinfo/RulesPerl zoneinfo/RulesVzic
|
||||
|
||||
test-changes: vzic test-vzic
|
||||
./test-vzic --dump-changes
|
||||
./vzic --dump-changes --pure
|
||||
@echo
|
||||
@echo "#"
|
||||
@echo "# If this diff command outputs anything there may be a problem."
|
||||
@echo "#"
|
||||
diff -ru zoneinfo/ChangesVzic test-output
|
||||
|
||||
clean:
|
||||
-rm -rf vzic $(OBJECTS) *~ ChangesVzic RulesVzic ZonesVzic RulesPerl ZonesPerl test-vzic test-vzic.o
|
||||
|
||||
.PHONY: clean perl-dump test-parse
|
||||
|
||||
|
202
vzic/README
Normal file
202
vzic/README
Normal file
|
@ -0,0 +1,202 @@
|
|||
|
||||
|
||||
VZIC README
|
||||
===========
|
||||
|
||||
This is 'vzic', a program to convert the Olson timezone database files into
|
||||
VTIMEZONE files compatible with the iCalendar specification (RFC2445).
|
||||
|
||||
(The name is based on the 'zic' program which converts the Olson files into
|
||||
time zone information files used by several Unix C libraries, including
|
||||
glibc. See zic(8) and tzfile(5).)
|
||||
|
||||
|
||||
|
||||
REQUIREMENTS
|
||||
============
|
||||
|
||||
You need the Olson timezone database files, which can be found at:
|
||||
|
||||
ftp://elsie.nci.nih.gov/pub/
|
||||
|
||||
(Old versions can be found at ftp://munnari.oz.au/pub/oldtz/)
|
||||
|
||||
|
||||
Vzic also uses the GLib library (for hash tables, dynamic arrays, and date
|
||||
calculations). You need version 2.0 or higher. You can get this from:
|
||||
|
||||
http://www.gtk.org
|
||||
|
||||
|
||||
|
||||
BUILDING
|
||||
========
|
||||
|
||||
Edit the Makefile to set the OLSON_DIR, PRODUCT_ID and TZID_PREFIX variables.
|
||||
|
||||
Then run 'make'.
|
||||
|
||||
|
||||
|
||||
RUNNING
|
||||
=======
|
||||
|
||||
Run 'vzic'.
|
||||
|
||||
The output is placed in the zoneinfo subdirectory by default,
|
||||
but you can use the --output-dir options to set another toplevel output
|
||||
directory.
|
||||
|
||||
By default it outputs VTIMEZONEs that try to be compatible with Outlook
|
||||
(2000, at least). Outlook can't handle certain iCalendar constructs in
|
||||
VTIMEZONEs, such as RRULEs using BYMONTHDAY, so it has to adjust the RRULEs
|
||||
slightly to get Outlook to parse them. Unfortunately this means they are
|
||||
slightly wrong. If given the --pure option, vzic outputs the exact data,
|
||||
without worrying about compatability.
|
||||
|
||||
NOTE: We don't convert all the Olson files. We skip 'backward', 'etcetera',
|
||||
'leapseconds', 'pacificnew', 'solar87', 'solar88' and 'solar89', 'factory'
|
||||
and 'systemv', since these don't really provide any useful timezones.
|
||||
See vzic.c.
|
||||
|
||||
|
||||
|
||||
MERGING CHANGES INTO A MASTER SET OF VTIMEZONES
|
||||
===============================================
|
||||
|
||||
The Olson timezone files are updated fairly often, so we need to build new
|
||||
sets of VTIMEZONE files. Though we have to be careful to ensure that the TZID
|
||||
of updated timezones is also updated, since it must remain unique.
|
||||
|
||||
We use a version number on the end of the TZID prefix (see the TZIDPrefix
|
||||
variable in vzic-output.c) to ensure this uniqueness.
|
||||
|
||||
But we don't want to update the version numbers of VTIMEZONEs which have not
|
||||
changed. So we use the vzic-merge.pl Perl script. This merges in the new set
|
||||
of VTIMEZONEs with a 'master' set. It compares each new VTIMEZONE file with
|
||||
the one in the master set (ignoring changes to the TZID). If the new
|
||||
VTIMEZONE file is different, it copies it to the master set and sets the
|
||||
version number to the old VTIMEZONE's version number + 1.
|
||||
|
||||
To use vzic-merge.pl you must change the $MASTER_ZONEINFO_DIR and
|
||||
$NEW_ZONEINFO_DIR variables at the top of the file to point to your 2 sets of
|
||||
VTIMEZONEs. You then just run the script. (I recommend you keep a backup of
|
||||
the old master VTIMEZONE files, and use diff to compare the new master set
|
||||
with the old one, in case anything goes wrong.)
|
||||
|
||||
You must merge in changes to the zones.tab file by hand.
|
||||
|
||||
Note that some timezones are renamed or removed occasionally, so applications
|
||||
should be able to cope with this.
|
||||
|
||||
|
||||
|
||||
COMPATABILITY NOTES
|
||||
===================
|
||||
|
||||
It seems that Microsoft Outlook is very picky about the iCalendar files it
|
||||
will accept. (I've been testing with Outlook 2000. I hope the other versions
|
||||
are no worse.) Here's a few problems we've had with the VTIMEZONEs:
|
||||
|
||||
o Outlook doesn't like any years before 1600. We were using '1st Jan 0001'
|
||||
in all VTIMEZONEs to specify the first UTC offset known for the timezone.
|
||||
(The Olson data does not give a start date for this.)
|
||||
|
||||
Now we just skip this first component for most timezones. The UTC offset
|
||||
can still be found from the TZOFFSETFROM property of the first component.
|
||||
|
||||
Though some timezones only specify one UTC offset that applies forever,
|
||||
so in these cases we output '1st Jan 1970' (Indian/Cocos,
|
||||
Pacific/Johnston).
|
||||
|
||||
o Outlook doesn't like the BYMONTHDAY specifier in RRULEs.
|
||||
|
||||
We have changed most of the VTIMEZONEs to use things like 'BYDAY=2SU'
|
||||
rather than 'BYMONTHDAY=8,9,10,11,12,13,14;BYDAY=SU', though some of
|
||||
them were impossible to convert correctly so they are not always correct.
|
||||
|
||||
o Outlook doesn't like TZOFFSETFROM/TZOFFSETTO properties which include a
|
||||
seconds component, e.g. 'TZOFFSETFROM:+110628'.
|
||||
Quite a lot of the Olson timezones include seconds in their UTC offsets,
|
||||
though no timezones currently have a UTC offset that uses the seconds
|
||||
value.
|
||||
|
||||
We've rounded all UTC offsets to the nearest minute. Since all timezone
|
||||
offsets currently used have '00' as the seconds offset, this doesn't lose
|
||||
us much.
|
||||
|
||||
o Outlook doesn't like lines being split in certain places, even though
|
||||
the iCalendar spec says they can be split anywhere.
|
||||
|
||||
o Outlook can only handle one RDATE or a pair of RRULEs. So we had to remove
|
||||
all historical data.
|
||||
|
||||
|
||||
TESTING
|
||||
=======
|
||||
|
||||
Do a 'make test-vic', then run ./test-vic.
|
||||
|
||||
The test-vzic program compares our libical code and VTIMEZONE data against
|
||||
the Unix functions like mktime(). It steps over a period of time (1970-2037)
|
||||
converting from UTC to a given timezone and back again every 15 minutes.
|
||||
Any differences are output into the test-output directory.
|
||||
|
||||
The output matches for all of the timezones, except in a few places where the
|
||||
result can't be determined. So I think we can be fairly confident that the
|
||||
VTIMEZONEs are correct.
|
||||
|
||||
Note that you must use the same Olson data in libical that the OS is using
|
||||
for mktime() etc. For example, I am using RedHat 9 which uses tzdata2002d,
|
||||
so I converted this to VTIMEZONE files and installed it into the libical
|
||||
timezone data directory before testing. (You need to use '--pure' when
|
||||
creating the VTIMEZONE files as well.)
|
||||
|
||||
|
||||
Testing the Parsing Code
|
||||
------------------------
|
||||
|
||||
Run 'make test-parse'.
|
||||
|
||||
This runs 'vzic --dump' and 'perl-dump' and compares the output. The diff
|
||||
commands should not produce any output.
|
||||
|
||||
'vzic --dump' dumps all the parsed data out in the original Olson format,
|
||||
but without comments. The files are written into the ZonesVzic and RulesVzic
|
||||
subdirectories of the zoneinfo directory.
|
||||
|
||||
'make perl-dump' runs the vzic-dump.pl perl script which outputs the files
|
||||
in the same format as 'vzic --dump' in the ZonesPerl and RulesPerl
|
||||
subdirectories. The perl script doesn't actually parse the fields; it only
|
||||
strips comments and massages the fields so we have the same output format.
|
||||
|
||||
Currently they both produce exactly the same output so we know the parsing
|
||||
code is OK.
|
||||
|
||||
|
||||
Testing the VTIMEZONE Files
|
||||
---------------------------
|
||||
|
||||
Run 'make test-changes'.
|
||||
|
||||
This runs 'vzic --dump-changes' and 'test-vzic --dump-changes' and compares
|
||||
the output. The diff command should not produce any output.
|
||||
|
||||
Both commands output timezone changes for each zone up to a specific year
|
||||
(2030) into files for each timezone. It outputs the timezone changes in a
|
||||
list in this format:
|
||||
|
||||
Timezone Name Date and Time of Change in UTC New Offset from UTC
|
||||
|
||||
America/Dawson 26 Oct 1986 2:00:00 -0800
|
||||
|
||||
Unfortunately there are some differences here, but they all happen before
|
||||
1970 so it doesn't matter too much. It looks like the libical code has
|
||||
problems determining things like 'last Sunday of the month' before 1970.
|
||||
This is because it uses mktime() etc. which can't really handle dates
|
||||
before 1970.
|
||||
|
||||
|
||||
|
||||
Damon Chaplin <damon@gnome.org>, 25 Oct 2003.
|
||||
|
422
vzic/test-vzic.c
Normal file
422
vzic/test-vzic.c
Normal file
|
@ -0,0 +1,422 @@
|
|||
/*
|
||||
* Vzic - a program to convert Olson timezone database files into VZTIMEZONE
|
||||
* files compatible with the iCalendar specification (RFC2445).
|
||||
*
|
||||
* Copyright (C) 2000-2001 Ximian, Inc.
|
||||
* Copyright (C) 2003 Damon Chaplin.
|
||||
*
|
||||
* Author: Damon Chaplin <damon@gnome.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/*
|
||||
* test-vzic.c - test vzic + libical against mktime() and friends.
|
||||
*
|
||||
* Note that when we output VCALENDAR data compatible with Outlook the
|
||||
* results aren't all correct.
|
||||
*
|
||||
* We have to modify some RRULEs which makes these timezones incorrect:
|
||||
*
|
||||
* Africa/Cairo
|
||||
* America/Godthab
|
||||
* America/Santiago
|
||||
* Antarctica/Palmer
|
||||
* Asia/Baghdad
|
||||
* Asia/Damascus
|
||||
* Asia/Jerusalem
|
||||
*
|
||||
* Also, we can only output one RDATE or a pair of RRULEs which may make some
|
||||
* other timezones incorrect sometimes (e.g. if they change).
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <ical.h>
|
||||
/*#include <evolution/ical.h>*/
|
||||
|
||||
#define CHANGES_MAX_YEAR 2030
|
||||
|
||||
/* These are the years between which we test against the Unix timezone
|
||||
functions, inclusive. When using 'vzic --pure' you can test the full
|
||||
range from 1970 to 2037 and it should match against mktime() etc.
|
||||
(assuming you are using the same Olson timezone data for both).
|
||||
|
||||
But when using VTIMEZONE's that are compatible with Outlook, it is only
|
||||
worth testing times in the future. There will be lots of differences in
|
||||
the past, since we can't include any historical changes in the files. */
|
||||
#if 1
|
||||
#define DUMP_START_YEAR 2003
|
||||
#define DUMP_END_YEAR 2037
|
||||
#else
|
||||
#define DUMP_START_YEAR 1970
|
||||
#define DUMP_END_YEAR 2037
|
||||
#endif
|
||||
|
||||
/* The maximum size of any complete pathname. */
|
||||
#define PATHNAME_BUFFER_SIZE 1024
|
||||
|
||||
#ifndef FALSE
|
||||
#define FALSE (0)
|
||||
#endif
|
||||
|
||||
#ifndef TRUE
|
||||
#define TRUE (!FALSE)
|
||||
#endif
|
||||
|
||||
int VzicDumpChanges = FALSE;
|
||||
|
||||
/* We output beneath the current directory for now. */
|
||||
char *directory = "test-output";
|
||||
|
||||
static void usage (void);
|
||||
static int parse_zone_name (char *name,
|
||||
char **directory,
|
||||
char **subdirectory,
|
||||
char **filename);
|
||||
static void ensure_directory_exists (char *directory);
|
||||
static void dump_local_times (icaltimezone *zone,
|
||||
FILE *fp);
|
||||
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
icalarray *zones;
|
||||
icaltimezone *zone;
|
||||
char *zone_directory, *zone_subdirectory, *zone_filename, *location;
|
||||
char output_directory[PATHNAME_BUFFER_SIZE];
|
||||
char filename[PATHNAME_BUFFER_SIZE];
|
||||
FILE *fp;
|
||||
int i;
|
||||
int skipping = TRUE;
|
||||
|
||||
/*
|
||||
* Command-Line Option Parsing.
|
||||
*/
|
||||
for (i = 1; i < argc; i++) {
|
||||
/* --dump-changes: Dumps a list of times when each timezone changed,
|
||||
and the new local time offset from UTC. */
|
||||
if (!strcmp (argv[i], "--dump-changes"))
|
||||
VzicDumpChanges = TRUE;
|
||||
|
||||
else
|
||||
usage ();
|
||||
}
|
||||
|
||||
|
||||
zones = icaltimezone_get_builtin_timezones ();
|
||||
|
||||
ensure_directory_exists (directory);
|
||||
|
||||
for (i = 0; i < zones->num_elements; i++) {
|
||||
zone = icalarray_element_at (zones, i);
|
||||
|
||||
location = icaltimezone_get_location (zone);
|
||||
|
||||
#if 0
|
||||
/* Use this to start at a certain zone. */
|
||||
if (skipping && strcmp (location, "America/Boise"))
|
||||
continue;
|
||||
#endif
|
||||
|
||||
skipping = FALSE;
|
||||
|
||||
/* Use this to only output data for certain timezones. */
|
||||
#if 0
|
||||
if (strcmp (location, "America/Cancun")
|
||||
&& strcmp (location, "Asia/Baku")
|
||||
&& strcmp (location, "Asia/Nicosia")
|
||||
&& strcmp (location, "Asia/Novosibirsk")
|
||||
&& strcmp (location, "Asia/Samarkand")
|
||||
&& strcmp (location, "Asia/Tashkent")
|
||||
&& strcmp (location, "Asia/Tbilisi")
|
||||
&& strcmp (location, "Asia/Yerevan")
|
||||
&& strcmp (location, "Australia/Broken_Hill")
|
||||
&& strcmp (location, "Europe/Simferopol")
|
||||
&& strcmp (location, "Europe/Tallinn")
|
||||
&& strcmp (location, "Europe/Zaporozhye")
|
||||
)
|
||||
continue;
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
printf ("%s\n", location);
|
||||
#endif
|
||||
|
||||
parse_zone_name (location, &zone_directory, &zone_subdirectory,
|
||||
&zone_filename);
|
||||
|
||||
sprintf (output_directory, "%s/%s", directory, zone_directory);
|
||||
ensure_directory_exists (output_directory);
|
||||
sprintf (filename, "%s/%s", output_directory, zone_filename);
|
||||
|
||||
if (zone_subdirectory) {
|
||||
sprintf (output_directory, "%s/%s/%s", directory, zone_directory,
|
||||
zone_subdirectory);
|
||||
ensure_directory_exists (output_directory);
|
||||
sprintf (filename, "%s/%s", output_directory, zone_filename);
|
||||
}
|
||||
|
||||
fp = fopen (filename, "w");
|
||||
if (!fp) {
|
||||
fprintf (stderr, "Couldn't create file: %s\n", filename);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
/* We can run 2 different tests - output all changes for each zone, or
|
||||
test against mktime()/localtime(). Should have a command-line option
|
||||
or something. */
|
||||
if (VzicDumpChanges)
|
||||
icaltimezone_dump_changes (zone, CHANGES_MAX_YEAR, fp);
|
||||
else
|
||||
dump_local_times (zone, fp);
|
||||
|
||||
if (ferror (fp)) {
|
||||
fprintf (stderr, "Error writing file: %s\n", filename);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
fclose (fp);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
usage (void)
|
||||
{
|
||||
fprintf (stderr, "Usage: test-vzic [--dump-changes]\n");
|
||||
|
||||
exit (1);
|
||||
}
|
||||
|
||||
|
||||
/* This checks that the Zone name only uses the characters in [-+_/a-zA-Z0-9],
|
||||
and outputs a warning if it isn't. */
|
||||
static int
|
||||
parse_zone_name (char *name,
|
||||
char **directory,
|
||||
char **subdirectory,
|
||||
char **filename)
|
||||
{
|
||||
static int invalid_zone_num = 1;
|
||||
|
||||
char *p, ch, *first_slash_pos = NULL, *second_slash_pos = NULL;
|
||||
int invalid = FALSE;
|
||||
|
||||
for (p = name; (ch = *p) != 0; p++) {
|
||||
if ((ch < 'a' || ch > 'z') && (ch < 'A' || ch > 'Z')
|
||||
&& (ch < '0' || ch > '9') && ch != '/' && ch != '_'
|
||||
&& ch != '-' && ch != '+') {
|
||||
fprintf (stderr, "Warning: Unusual Zone name: %s\n", name);
|
||||
invalid = TRUE;
|
||||
break;
|
||||
}
|
||||
|
||||
if (ch == '/') {
|
||||
if (!first_slash_pos) {
|
||||
first_slash_pos = p;
|
||||
} else if (!second_slash_pos) {
|
||||
second_slash_pos = p;
|
||||
} else {
|
||||
fprintf (stderr, "Warning: More than 2 '/' characters in Zone name: %s\n", name);
|
||||
invalid = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!first_slash_pos) {
|
||||
fprintf (stderr, "No '/' character in Zone name: %s. Skipping.\n", name);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (invalid) {
|
||||
fprintf (stderr, "Invalid zone name: %s\n", name);
|
||||
exit (0);
|
||||
} else {
|
||||
*first_slash_pos = '\0';
|
||||
*directory = icalmemory_strdup (name);
|
||||
*first_slash_pos = '/';
|
||||
|
||||
if (second_slash_pos) {
|
||||
*second_slash_pos = '\0';
|
||||
*subdirectory = icalmemory_strdup (first_slash_pos + 1);
|
||||
*second_slash_pos = '/';
|
||||
|
||||
*filename = icalmemory_strdup (second_slash_pos + 1);
|
||||
} else {
|
||||
*subdirectory = NULL;
|
||||
*filename = icalmemory_strdup (first_slash_pos + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
ensure_directory_exists (char *directory)
|
||||
{
|
||||
struct stat filestat;
|
||||
|
||||
if (stat (directory, &filestat) != 0) {
|
||||
/* If the directory doesn't exist, try to create it. */
|
||||
if (errno == ENOENT) {
|
||||
if (mkdir (directory, 0777) != 0) {
|
||||
fprintf (stderr, "Can't create directory: %s\n", directory);
|
||||
exit (1);
|
||||
}
|
||||
} else {
|
||||
fprintf (stderr, "Error calling stat() on directory: %s\n", directory);
|
||||
exit (1);
|
||||
}
|
||||
} else if (!S_ISDIR (filestat.st_mode)) {
|
||||
fprintf (stderr, "Can't create directory, already exists: %s\n",
|
||||
directory);
|
||||
exit (1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
dump_local_times (icaltimezone *zone, FILE *fp)
|
||||
{
|
||||
static char *months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
|
||||
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
|
||||
icaltimezone *utc_timezone;
|
||||
struct icaltimetype tt, tt_copy;
|
||||
struct tm tm, local_tm;
|
||||
time_t t;
|
||||
char tzstring[256], *location;
|
||||
int last_year_output = 0;
|
||||
int total_error = 0, total_error2 = 0;
|
||||
|
||||
utc_timezone = icaltimezone_get_utc_timezone ();
|
||||
|
||||
/* This is our UTC time that we will use to iterate over the period. */
|
||||
tt.year = DUMP_START_YEAR;
|
||||
tt.month = 1;
|
||||
tt.day = 1;
|
||||
tt.hour = 0;
|
||||
tt.minute = 0;
|
||||
tt.second = 0;
|
||||
tt.is_utc = 0;
|
||||
tt.is_date = 0;
|
||||
tt.zone = "";
|
||||
|
||||
tm.tm_year = tt.year - 1900;
|
||||
tm.tm_mon = tt.month - 1;
|
||||
tm.tm_mday = tt.day;
|
||||
tm.tm_hour = tt.hour;
|
||||
tm.tm_min = tt.minute;
|
||||
tm.tm_sec = tt.second;
|
||||
tm.tm_isdst = -1;
|
||||
|
||||
/* Convert it to a time_t by saying it is in UTC. */
|
||||
putenv ("TZ=UTC");
|
||||
t = mktime (&tm);
|
||||
|
||||
location = icaltimezone_get_location (zone);
|
||||
sprintf (tzstring, "TZ=%s", location);
|
||||
|
||||
/*printf ("Zone: %s\n", location);*/
|
||||
putenv (tzstring);
|
||||
|
||||
/* Loop around converting the UTC time to local time, outputting it, and
|
||||
then adding on 15 minutes to the UTC time. */
|
||||
while (tt.year <= DUMP_END_YEAR) {
|
||||
if (tt.year > last_year_output) {
|
||||
last_year_output = tt.year;
|
||||
#if 0
|
||||
printf (" %i\n", last_year_output);
|
||||
fprintf (fp, " %i\n", last_year_output);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if 1
|
||||
/* First use the Unix functions. */
|
||||
/* Now convert it to a local time in the given timezone. */
|
||||
local_tm = *localtime (&t);
|
||||
#endif
|
||||
|
||||
#if 1
|
||||
/* Now use libical. */
|
||||
tt_copy = tt;
|
||||
icaltimezone_convert_time (&tt_copy, utc_timezone, zone);
|
||||
#endif
|
||||
|
||||
#if 1
|
||||
if (local_tm.tm_year + 1900 != tt_copy.year
|
||||
|| local_tm.tm_mon + 1 != tt_copy.month
|
||||
|| local_tm.tm_mday != tt_copy.day
|
||||
|| local_tm.tm_hour != tt_copy.hour
|
||||
|| local_tm.tm_min != tt_copy.minute
|
||||
|| local_tm.tm_sec != tt_copy.second) {
|
||||
|
||||
/* The error format is:
|
||||
|
||||
ERROR: Original-UTC-Time Local-Time-From-mktime Local-Time-From-Libical
|
||||
|
||||
*/
|
||||
|
||||
total_error++;
|
||||
|
||||
fprintf (fp, "ERROR:%2i %s %04i %2i:%02i:%02i UTC",
|
||||
tt.day, months[tt.month - 1], tt.year,
|
||||
tt.hour, tt.minute, tt.second);
|
||||
fprintf (fp, " ->%2i %s %04i %2i:%02i:%02i",
|
||||
local_tm.tm_mday, months[local_tm.tm_mon],
|
||||
local_tm.tm_year + 1900,
|
||||
local_tm.tm_hour, local_tm.tm_min, local_tm.tm_sec);
|
||||
fprintf (fp, " Us:%2i %s %04i %2i:%02i:%02i\n",
|
||||
tt_copy.day, months[tt_copy.month - 1], tt_copy.year,
|
||||
tt_copy.hour, tt_copy.minute, tt_copy.second);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Now convert it back, and check we get the original time. */
|
||||
icaltimezone_convert_time (&tt_copy, zone, utc_timezone);
|
||||
if (tt.year != tt_copy.year
|
||||
|| tt.month != tt_copy.month
|
||||
|| tt.day != tt_copy.day
|
||||
|| tt.hour != tt_copy.hour
|
||||
|| tt.minute != tt_copy.minute
|
||||
|| tt.second != tt_copy.second) {
|
||||
|
||||
total_error2++;
|
||||
|
||||
fprintf (fp, "ERROR 2: %2i %s %04i %2i:%02i:%02i UTC",
|
||||
tt.day, months[tt.month - 1], tt.year,
|
||||
tt.hour, tt.minute, tt.second);
|
||||
fprintf (fp, " Us:%2i %s %04i %2i:%02i:%02i UTC\n",
|
||||
tt_copy.day, months[tt_copy.month - 1], tt_copy.year,
|
||||
tt_copy.hour, tt_copy.minute, tt_copy.second);
|
||||
}
|
||||
|
||||
|
||||
/* Increment the time. */
|
||||
icaltime_adjust (&tt, 0, 0, 15, 0);
|
||||
|
||||
/* We assume leap seconds are not included in time_t values, which should
|
||||
be true on POSIX systems. */
|
||||
t += 15 * 60;
|
||||
}
|
||||
|
||||
printf ("Zone: %40s Errors: %i (%i)\n", icaltimezone_get_location (zone),
|
||||
total_error, total_error2);
|
||||
}
|
409
vzic/vzic-dump.c
Normal file
409
vzic/vzic-dump.c
Normal file
|
@ -0,0 +1,409 @@
|
|||
/*
|
||||
* Vzic - a program to convert Olson timezone database files into VZTIMEZONE
|
||||
* files compatible with the iCalendar specification (RFC2445).
|
||||
*
|
||||
* Copyright (C) 2000-2001 Ximian, Inc.
|
||||
* Copyright (C) 2003 Damon Chaplin.
|
||||
*
|
||||
* Author: Damon Chaplin <damon@gnome.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/*
|
||||
* These functions are for dumping all the parsed Zones and Rules to
|
||||
* files, to be compared with the output of vzic-dump.pl to check our parsing
|
||||
* code is OK. Some of the functions are also used for producing debugging
|
||||
* output.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "vzic.h"
|
||||
#include "vzic-dump.h"
|
||||
|
||||
|
||||
static void dump_add_rule (char *name,
|
||||
GArray *rule_array,
|
||||
GPtrArray *name_array);
|
||||
static int dump_compare_strings (const void *arg1,
|
||||
const void *arg2);
|
||||
|
||||
|
||||
void
|
||||
dump_zone_data (GArray *zone_data,
|
||||
char *filename)
|
||||
{
|
||||
static char *months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
|
||||
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
|
||||
FILE *fp;
|
||||
ZoneData *zone;
|
||||
ZoneLineData *zone_line;
|
||||
int i, j;
|
||||
gboolean output_month, output_day, output_time;
|
||||
|
||||
fp = fopen (filename, "w");
|
||||
if (!fp) {
|
||||
fprintf (stderr, "Couldn't create file: %s\n", filename);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
for (i = 0; i < zone_data->len; i++) {
|
||||
zone = &g_array_index (zone_data, ZoneData, i);
|
||||
|
||||
fprintf (fp, "Zone\t%s\t", zone->zone_name);
|
||||
|
||||
for (j = 0; j < zone->zone_line_data->len; j++) {
|
||||
zone_line = &g_array_index (zone->zone_line_data, ZoneLineData, j);
|
||||
|
||||
if (j != 0)
|
||||
fprintf (fp, "\t\t\t");
|
||||
|
||||
fprintf (fp, "%s\t", dump_time (zone_line->stdoff_seconds, TIME_WALL,
|
||||
FALSE));
|
||||
|
||||
if (zone_line->rules)
|
||||
fprintf (fp, "%s\t", zone_line->rules);
|
||||
else if (zone_line->save_seconds != 0)
|
||||
fprintf (fp, "%s\t", dump_time (zone_line->save_seconds, TIME_WALL,
|
||||
FALSE));
|
||||
else
|
||||
fprintf (fp, "-\t");
|
||||
|
||||
fprintf (fp, "%s\t", zone_line->format ? zone_line->format : "-");
|
||||
|
||||
if (zone_line->until_set) {
|
||||
fprintf (fp, "%s\t", dump_year (zone_line->until_year));
|
||||
|
||||
output_month = output_day = output_time = FALSE;
|
||||
|
||||
if (zone_line->until_time_code != TIME_WALL
|
||||
|| zone_line->until_time_seconds != 0)
|
||||
output_month = output_day = output_time = TRUE;
|
||||
else if (zone_line->until_day_code != DAY_SIMPLE
|
||||
|| zone_line->until_day_number != 1)
|
||||
output_month = output_day = TRUE;
|
||||
else if (zone_line->until_month != 0)
|
||||
output_month = TRUE;
|
||||
|
||||
if (output_month)
|
||||
fprintf (fp, "%s", months[zone_line->until_month]);
|
||||
|
||||
fprintf (fp, "\t");
|
||||
|
||||
if (output_day)
|
||||
fprintf (fp, "%s", dump_day_coded (zone_line->until_day_code,
|
||||
zone_line->until_day_number,
|
||||
zone_line->until_day_weekday));
|
||||
|
||||
fprintf (fp, "\t");
|
||||
|
||||
if (output_time)
|
||||
fprintf (fp, "%s", dump_time (zone_line->until_time_seconds,
|
||||
zone_line->until_time_code, FALSE));
|
||||
|
||||
} else {
|
||||
fprintf (fp, "\t\t\t");
|
||||
}
|
||||
|
||||
fprintf (fp, "\n");
|
||||
}
|
||||
}
|
||||
|
||||
fclose (fp);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
dump_rule_data (GHashTable *rule_data,
|
||||
char *filename)
|
||||
{
|
||||
FILE *fp;
|
||||
GPtrArray *name_array;
|
||||
GArray *rule_array;
|
||||
int i;
|
||||
char *name;
|
||||
|
||||
fp = fopen (filename, "w");
|
||||
if (!fp) {
|
||||
fprintf (stderr, "Couldn't create file: %s\n", filename);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
/* We need to sort the rules by their names, so they are in the same order
|
||||
as the Perl output. So we place all the names in a temporary GPtrArray,
|
||||
sort it, then output them. */
|
||||
name_array = g_ptr_array_new ();
|
||||
g_hash_table_foreach (rule_data, (GHFunc) dump_add_rule, name_array);
|
||||
qsort (name_array->pdata, name_array->len, sizeof (char*),
|
||||
dump_compare_strings);
|
||||
|
||||
for (i = 0; i < name_array->len; i++) {
|
||||
name = g_ptr_array_index (name_array, i);
|
||||
rule_array = g_hash_table_lookup (rule_data, name);
|
||||
if (!rule_array) {
|
||||
fprintf (stderr, "Couldn't access rules: %s\n", name);
|
||||
exit (1);
|
||||
}
|
||||
dump_rule_array (name, rule_array, fp);
|
||||
}
|
||||
|
||||
g_ptr_array_free (name_array, TRUE);
|
||||
|
||||
fclose (fp);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
dump_add_rule (char *name,
|
||||
GArray *rule_array,
|
||||
GPtrArray *name_array)
|
||||
{
|
||||
g_ptr_array_add (name_array, name);
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
dump_compare_strings (const void *arg1,
|
||||
const void *arg2)
|
||||
{
|
||||
char **a, **b;
|
||||
|
||||
a = (char**) arg1;
|
||||
b = (char**) arg2;
|
||||
|
||||
return strcmp (*a, *b);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
dump_rule_array (char *name,
|
||||
GArray *rule_array,
|
||||
FILE *fp)
|
||||
{
|
||||
static char *months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
|
||||
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
|
||||
|
||||
RuleData *rule;
|
||||
int i;
|
||||
|
||||
#if 0
|
||||
fprintf (fp, "\n# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S");
|
||||
#endif
|
||||
|
||||
for (i = 0; i < rule_array->len; i++) {
|
||||
rule = &g_array_index (rule_array, RuleData, i);
|
||||
|
||||
fprintf (fp, "Rule\t%s\t%s\t", name, dump_year (rule->from_year));
|
||||
|
||||
if (rule->to_year == rule->from_year)
|
||||
fprintf (fp, "only\t");
|
||||
else
|
||||
fprintf (fp, "%s\t", dump_year (rule->to_year));
|
||||
|
||||
fprintf (fp, "%s\t", rule->type ? rule->type : "-");
|
||||
|
||||
fprintf (fp, "%s\t", months[rule->in_month]);
|
||||
|
||||
fprintf (fp, "%s\t",
|
||||
dump_day_coded (rule->on_day_code, rule->on_day_number,
|
||||
rule->on_day_weekday));
|
||||
|
||||
fprintf (fp, "%s\t", dump_time (rule->at_time_seconds, rule->at_time_code,
|
||||
FALSE));
|
||||
|
||||
fprintf (fp, "%s\t", dump_time (rule->save_seconds, TIME_WALL, TRUE));
|
||||
|
||||
fprintf (fp, "%s", rule->letter_s ? rule->letter_s : "-");
|
||||
|
||||
fprintf (fp, "\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
char*
|
||||
dump_time (int seconds,
|
||||
TimeCode time_code,
|
||||
gboolean use_zero)
|
||||
{
|
||||
static char buffer[256], *sign;
|
||||
int hours, minutes;
|
||||
char *code;
|
||||
|
||||
if (time_code == TIME_STANDARD)
|
||||
code = "s";
|
||||
else if (time_code == TIME_UNIVERSAL)
|
||||
code = "u";
|
||||
else
|
||||
code = "";
|
||||
|
||||
if (seconds < 0) {
|
||||
seconds = -seconds;
|
||||
sign = "-";
|
||||
} else {
|
||||
sign = "";
|
||||
}
|
||||
|
||||
hours = seconds / 3600;
|
||||
minutes = (seconds % 3600) / 60;
|
||||
seconds = seconds % 60;
|
||||
|
||||
if (use_zero && hours == 0 && minutes == 0 && seconds == 0)
|
||||
return "0";
|
||||
else if (seconds == 0)
|
||||
sprintf (buffer, "%s%i:%02i%s", sign, hours, minutes, code);
|
||||
else
|
||||
sprintf (buffer, "%s%i:%02i:%02i%s", sign, hours, minutes, seconds, code);
|
||||
|
||||
return buffer;
|
||||
}
|
||||
|
||||
|
||||
char*
|
||||
dump_day_coded (DayCode day_code,
|
||||
int day_number,
|
||||
int day_weekday)
|
||||
{
|
||||
static char buffer[256];
|
||||
static char *weekdays[] = { "Sun", "Mon", "Tue", "Wed",
|
||||
"Thu", "Fri", "Sat" };
|
||||
|
||||
switch (day_code) {
|
||||
case DAY_SIMPLE:
|
||||
sprintf (buffer, "%i", day_number);
|
||||
break;
|
||||
case DAY_WEEKDAY_ON_OR_AFTER:
|
||||
sprintf (buffer, "%s>=%i", weekdays[day_weekday], day_number);
|
||||
break;
|
||||
case DAY_WEEKDAY_ON_OR_BEFORE:
|
||||
sprintf (buffer, "%s<=%i", weekdays[day_weekday], day_number);
|
||||
break;
|
||||
case DAY_LAST_WEEKDAY:
|
||||
sprintf (buffer, "last%s", weekdays[day_weekday]);
|
||||
break;
|
||||
default:
|
||||
fprintf (stderr, "Invalid day code: %i\n", day_code);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
return buffer;
|
||||
}
|
||||
|
||||
|
||||
char*
|
||||
dump_year (int year)
|
||||
{
|
||||
static char buffer[256];
|
||||
|
||||
if (year == YEAR_MINIMUM)
|
||||
return "min";
|
||||
if (year == YEAR_MAXIMUM)
|
||||
return "max";
|
||||
|
||||
sprintf (buffer, "%i", year);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
dump_time_zone_names (GList *names,
|
||||
char *output_dir,
|
||||
GHashTable *zones_hash)
|
||||
{
|
||||
char filename[PATHNAME_BUFFER_SIZE], *zone_name, *zone_name_in_hash = NULL;
|
||||
char strings_filename[PATHNAME_BUFFER_SIZE];
|
||||
FILE *fp, *strings_fp = NULL;
|
||||
GList *elem;
|
||||
ZoneDescription *zone_desc;
|
||||
|
||||
sprintf (filename, "%s/zones.tab", output_dir);
|
||||
sprintf (strings_filename, "%s/zones.h", output_dir);
|
||||
|
||||
fp = fopen (filename, "w");
|
||||
if (!fp) {
|
||||
fprintf (stderr, "Couldn't create file: %s\n", filename);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
if (VzicDumpZoneTranslatableStrings) {
|
||||
strings_fp = fopen (strings_filename, "w");
|
||||
if (!strings_fp) {
|
||||
fprintf (stderr, "Couldn't create file: %s\n", strings_filename);
|
||||
exit (1);
|
||||
}
|
||||
}
|
||||
|
||||
names = g_list_sort (names, (GCompareFunc) strcmp);
|
||||
|
||||
elem = names;
|
||||
while (elem) {
|
||||
zone_name = (char*) elem->data;
|
||||
|
||||
zone_desc = g_hash_table_lookup (zones_hash, zone_name);
|
||||
|
||||
/* SPECIAL CASES: These timezones are links from other zones and are
|
||||
almost exactly the same - they are basically there so users can find
|
||||
them a bit easier. But they don't have entries in the zone.tab file,
|
||||
so we use the entry from the timezone linked from. */
|
||||
if (!zone_desc) {
|
||||
if (!strcmp (zone_name, "America/Indiana/Indianapolis"))
|
||||
zone_name_in_hash = "America/Indianapolis";
|
||||
else if (!strcmp (zone_name, "America/Kentucky/Louisville"))
|
||||
zone_name_in_hash = "America/Louisville";
|
||||
else if (!strcmp (zone_name, "Asia/Istanbul"))
|
||||
zone_name_in_hash = "Europe/Istanbul";
|
||||
else if (!strcmp (zone_name, "Europe/Nicosia"))
|
||||
zone_name_in_hash = "Asia/Nicosia";
|
||||
|
||||
if (zone_name_in_hash)
|
||||
zone_desc = g_hash_table_lookup (zones_hash, zone_name_in_hash);
|
||||
}
|
||||
|
||||
if (zone_desc) {
|
||||
fprintf (fp, "%+04i%02i%02i %+04i%02i%02i %s\n",
|
||||
zone_desc->latitude[0], zone_desc->latitude[1],
|
||||
zone_desc->latitude[2],
|
||||
zone_desc->longitude[0], zone_desc->longitude[1],
|
||||
zone_desc->longitude[2],
|
||||
zone_name);
|
||||
} else {
|
||||
g_print ("Zone description not found for: %s\n", zone_name);
|
||||
fprintf (fp, "%s\n", zone_name);
|
||||
}
|
||||
|
||||
|
||||
if (VzicDumpZoneTranslatableStrings) {
|
||||
#if 0
|
||||
char zone_name_buffer[1024], *src, *dest;
|
||||
|
||||
for (src = zone_name, dest = zone_name_buffer; *src; src++, dest++)
|
||||
*dest = (*src == '_') ? ' ' : *src;
|
||||
*dest = '\0';
|
||||
#endif
|
||||
|
||||
fprintf (strings_fp, "N_(\"%s\");\n", zone_name);
|
||||
}
|
||||
|
||||
elem = elem->next;
|
||||
}
|
||||
|
||||
fclose (fp);
|
||||
|
||||
if (VzicDumpZoneTranslatableStrings)
|
||||
fclose (strings_fp);
|
||||
}
|
||||
|
58
vzic/vzic-dump.h
Normal file
58
vzic/vzic-dump.h
Normal file
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* Vzic - a program to convert Olson timezone database files into VZTIMEZONE
|
||||
* files compatible with the iCalendar specification (RFC2445).
|
||||
*
|
||||
* Copyright (C) 2000-2001 Ximian, Inc.
|
||||
* Copyright (C) 2003 Damon Chaplin.
|
||||
*
|
||||
* Author: Damon Chaplin <damon@gnome.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/*
|
||||
* These functions are for dumping all the parsed Zones and Rules to
|
||||
* files, to be compared with the output of vzic-dump.pl to check our parsing
|
||||
* code is OK. Some of the functions are also used for producing debugging
|
||||
* output.
|
||||
*/
|
||||
|
||||
#ifndef _VZIC_DUMP_H_
|
||||
#define _VZIC_DUMP_H_
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
void dump_zone_data (GArray *zone_data,
|
||||
char *filename);
|
||||
void dump_rule_data (GHashTable *rule_data,
|
||||
char *filename);
|
||||
|
||||
void dump_rule_array (char *name,
|
||||
GArray *rule_array,
|
||||
FILE *fp);
|
||||
|
||||
char* dump_year (int year);
|
||||
char* dump_day_coded (DayCode day_code,
|
||||
int day_number,
|
||||
int day_weekday);
|
||||
char* dump_time (int seconds,
|
||||
TimeCode time_code,
|
||||
gboolean use_zero);
|
||||
|
||||
void dump_time_zone_names (GList *names,
|
||||
char *output_dir,
|
||||
GHashTable *zones_hash);
|
||||
|
||||
#endif /* _VZIC_DUMP_H_ */
|
222
vzic/vzic-dump.pl
Executable file
222
vzic/vzic-dump.pl
Executable file
|
@ -0,0 +1,222 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
#
|
||||
# Vzic - a program to convert Olson timezone database files into VZTIMEZONE
|
||||
# files compatible with the iCalendar specification (RFC2445).
|
||||
#
|
||||
# Copyright (C) 2000-2001 Ximian, Inc.
|
||||
# Copyright (C) 2003 Damon Chaplin.
|
||||
#
|
||||
# Author: Damon Chaplin <damon@gnome.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
#
|
||||
|
||||
#
|
||||
# This reads the Olson timezone files, strips any comments, and outputs them
|
||||
# in a very simple format with tab-separated fields. It is used to compare
|
||||
# with the output of dump_zone_data() and dump_rule_data() to double-check
|
||||
# that we have parsed the files correctly.
|
||||
#
|
||||
|
||||
my $zones_fh = "zonesfile";
|
||||
my $rules_fh = "rulesfile";
|
||||
|
||||
my %Rules;
|
||||
|
||||
if ($#ARGV != 0) {
|
||||
die "Usage: $0 <OlsonDirectory>";
|
||||
}
|
||||
|
||||
my $OLSON_DIR = $ARGV[0];
|
||||
|
||||
# We place output in subdirectories of the current directory.
|
||||
my $OUTPUT_DIR = "zoneinfo";
|
||||
|
||||
if (! -d "$OUTPUT_DIR") {
|
||||
mkdir ("$OUTPUT_DIR", 0777)
|
||||
|| die "Can't create directory: $OUTPUT_DIR";
|
||||
}
|
||||
if (! -d "$OUTPUT_DIR/ZonesPerl") {
|
||||
mkdir ("$OUTPUT_DIR/ZonesPerl", 0777)
|
||||
|| die "Can't create directory: $OUTPUT_DIR/ZonesPerl";
|
||||
}
|
||||
if (! -d "$OUTPUT_DIR/RulesPerl") {
|
||||
mkdir ("$OUTPUT_DIR/RulesPerl", 0777)
|
||||
|| die "Can't create directory: $OUTPUT_DIR/RulesPerl";
|
||||
}
|
||||
|
||||
|
||||
&ReadOlsonFile ("africa");
|
||||
&ReadOlsonFile ("antarctica");
|
||||
&ReadOlsonFile ("asia");
|
||||
&ReadOlsonFile ("australasia");
|
||||
&ReadOlsonFile ("europe");
|
||||
&ReadOlsonFile ("northamerica");
|
||||
&ReadOlsonFile ("southamerica");
|
||||
|
||||
# These are backwards-compatability and weird stuff.
|
||||
#&ReadOlsonFile ("backward");
|
||||
#&ReadOlsonFile ("etcetera");
|
||||
#&ReadOlsonFile ("leapseconds");
|
||||
#&ReadOlsonFile ("pacificnew");
|
||||
#&ReadOlsonFile ("solar87");
|
||||
#&ReadOlsonFile ("solar88");
|
||||
#&ReadOlsonFile ("solar89");
|
||||
|
||||
# We don't do this one since it is not useful and the use of '"' in the Zone
|
||||
# line messes up our split() command.
|
||||
#&ReadOlsonFile ("factory");
|
||||
|
||||
# We don't do this since the vzic program can't do it.
|
||||
#&ReadOlsonFile ("systemv");
|
||||
|
||||
|
||||
|
||||
|
||||
1;
|
||||
|
||||
|
||||
sub ReadOlsonFile {
|
||||
my ($file) = @_;
|
||||
|
||||
# print ("Reading olson file: $file\n");
|
||||
|
||||
open (OLSONFILE, "$OLSON_DIR/$file")
|
||||
|| die "Can't open file: $file";
|
||||
|
||||
open ($zones_fh, ">$OUTPUT_DIR/ZonesPerl/$file")
|
||||
|| die "Can't open file: $OUTPUT_DIR/ZonesPerl/$file";
|
||||
|
||||
open ($rules_fh, ">$OUTPUT_DIR/RulesPerl/$file")
|
||||
|| die "Can't open file: $OUTPUT_DIR/RulesPerl/$file";
|
||||
|
||||
%Rules = ();
|
||||
|
||||
my $zone_continues = 0;
|
||||
|
||||
while (<OLSONFILE>) {
|
||||
next if (m/^#/);
|
||||
|
||||
# '#' characters can appear in strings, but the Olson files don't use
|
||||
# that feature at present so we treat all '#' as comments for now.
|
||||
s/#.*//;
|
||||
|
||||
next if (m/^\s*$/);
|
||||
|
||||
if ($zone_continues) {
|
||||
$zone_continues = &ReadZoneContinuationLine;
|
||||
|
||||
} elsif (m/^Rule\s/) {
|
||||
&ReadRuleLine;
|
||||
|
||||
} elsif (m/^Zone\s/) {
|
||||
$zone_continues = &ReadZoneLine;
|
||||
|
||||
} elsif (m/^Link\s/) {
|
||||
# print "Link: $link_from, $link_to\n";
|
||||
|
||||
} elsif (m/^Leap\s/) {
|
||||
# print "Leap\n";
|
||||
|
||||
} else {
|
||||
die "Invalid line: $_";
|
||||
}
|
||||
}
|
||||
|
||||
# print ("Read olson file: $file\n");
|
||||
|
||||
foreach $key (sort (keys (%Rules))) {
|
||||
print $rules_fh "$Rules{$key}"
|
||||
}
|
||||
|
||||
close ($zones_fh);
|
||||
close ($rules_fh);
|
||||
close (OLSONFILE);
|
||||
}
|
||||
|
||||
|
||||
sub ReadZoneLine {
|
||||
my ($zone, $name, $gmtoff, $rules_save, $format,
|
||||
$until_year, $until_month, $until_day, $until_time, $remainder)
|
||||
= split ' ', $_, 10;
|
||||
|
||||
return &ReadZoneLineCommon ($zone, $name, $gmtoff, $rules_save, $format,
|
||||
$until_year, $until_month, $until_day,
|
||||
$until_time);
|
||||
}
|
||||
|
||||
|
||||
sub ReadZoneContinuationLine {
|
||||
my ($gmtoff, $rules_save, $format,
|
||||
$until_year, $until_month, $until_day, $until_time, $remainder)
|
||||
= split ' ', $_, 8;
|
||||
|
||||
return &ReadZoneLineCommon ("", "", $gmtoff, $rules_save, $format,
|
||||
$until_year, $until_month, $until_day,
|
||||
$until_time);
|
||||
}
|
||||
|
||||
|
||||
sub ReadZoneLineCommon {
|
||||
my ($zone, $name, $gmtoff, $rules_save, $format,
|
||||
$until_year, $until_month, $until_day, $until_time) = @_;
|
||||
|
||||
if (!defined ($until_year)) { $until_year = ""; }
|
||||
if (!defined ($until_month)) { $until_month = ""; }
|
||||
if (!defined ($until_day)) { $until_day = ""; }
|
||||
if (!defined ($until_time)) { $until_time = ""; }
|
||||
|
||||
# A few of the gmtoffsets have an unnecessary :00 seconds.
|
||||
$gmtoff =~ s/(\d+):(\d+):00/$1:$2/;
|
||||
|
||||
# Make sure the gmtoff does have minutes.
|
||||
$gmtoff =~ s/^(-?\d+)$/$1:00/;
|
||||
|
||||
# Fix a few other bits so they all use the same format.
|
||||
if ($gmtoff eq "0") { $gmtoff = "0:00"; }
|
||||
$until_time =~ s/^0(\d):/$1:/;
|
||||
if ($until_time eq "0:00") { $until_time = ""; }
|
||||
if ($until_day eq "1" && $until_time eq "") { $until_day = ""; }
|
||||
if ($until_month eq "Jan" && $until_day eq "" && $until_time eq "") {
|
||||
$until_month = "";
|
||||
}
|
||||
|
||||
# For Zone continuation lines we need to insert an extra TAB.
|
||||
if (!$zone) { $zone = "\t" };
|
||||
|
||||
print $zones_fh "$zone\t$name\t$gmtoff\t$rules_save\t$format\t$until_year\t$until_month\t$until_day\t$until_time\n";
|
||||
|
||||
if (defined ($until_year) && $until_year) {
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
sub ReadRuleLine {
|
||||
my ($rule, $name, $from, $to, $type, $in, $on, $at, $save, $letter_s,
|
||||
$remainder) = split;
|
||||
|
||||
$at =~ s/(\d+:\d+):00/$1/;
|
||||
$save =~ s/(\d+:\d+):00/$1/;
|
||||
if ($save eq "0:00") { $save = "0"; }
|
||||
|
||||
$Rules{$name} .= "$rule\t$name\t$from\t$to\t$type\t$in\t$on\t$at\t$save\t$letter_s\n";
|
||||
|
||||
# print $rules_fh "$rule\t$name\t$from\t$to\t$type\t$in\t$on\t$at\t$save\t$letter_s\n";
|
||||
}
|
||||
|
127
vzic/vzic-merge.pl
Executable file
127
vzic/vzic-merge.pl
Executable file
|
@ -0,0 +1,127 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
#
|
||||
# Vzic - a program to convert Olson timezone database files into VZTIMEZONE
|
||||
# files compatible with the iCalendar specification (RFC2445).
|
||||
#
|
||||
# Copyright (C) 2001 Ximian, Inc.
|
||||
# Copyright (C) 2003 Damon Chaplin.
|
||||
#
|
||||
# Author: Damon Chaplin <damon@gnome.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
#
|
||||
|
||||
#
|
||||
# This merges in a new set of VTIMEZONE files with the 'master' set. It only
|
||||
# updates the files in the master set if the VTIMEZONE component has really
|
||||
# been changes. Note that the TZID normally includes the date the VTIMEZONE
|
||||
# file was generated on, so we have to ignore this when comparing the files.
|
||||
#
|
||||
|
||||
# Set these to the toplevel directories of the 2 sets of VTIMEZONE files.
|
||||
#$MASTER_ZONEINFO_DIR = "/home/damon/cvs/libical/zoneinfo";
|
||||
$MASTER_ZONEINFO_DIR = "/usr/share/libical-evolution/zoneinfo";
|
||||
$NEW_ZONEINFO_DIR = "/home/damon/src/vzic-1.0/zoneinfo";
|
||||
|
||||
# Set this to 1 if you have version numbers in the TZID like libical.
|
||||
$LIBICAL_VERSIONING = 1;
|
||||
|
||||
# Set this to 0 for dry-runs, and 1 to actually update.
|
||||
$DO_UPDATES = 1;
|
||||
|
||||
# Save this so we can restore it later.
|
||||
$input_record_separator = $/;
|
||||
|
||||
chdir $NEW_ZONEINFO_DIR
|
||||
|| die "Can't cd to $NEW_ZONEINFO_DIR";
|
||||
|
||||
foreach $new_file (`find -name "*.ics"`) {
|
||||
# Get rid of './' at start and whitespace at end.
|
||||
$new_file =~ s/^\.\///;
|
||||
$new_file =~ s/\s+$//;
|
||||
|
||||
# print "File: $new_file\n";
|
||||
|
||||
open (NEWZONEFILE, "$new_file")
|
||||
|| die "Can't open file: $NEW_ZONEINFO_DIR/$new_file";
|
||||
undef $/;
|
||||
$new_contents = <NEWZONEFILE>;
|
||||
$/ = $input_record_separator;
|
||||
close (NEWZONEFILE);
|
||||
|
||||
$master_file = $MASTER_ZONEINFO_DIR . "/$new_file";
|
||||
|
||||
# print "Master File: $master_file\n";
|
||||
|
||||
$copy_to_master = 0;
|
||||
|
||||
# If the ics file exists in the master copy we have to compare them,
|
||||
# otherwise we can just copy the new file into the master directory.
|
||||
if (-e $master_file) {
|
||||
open (MASTERZONEFILE, "$master_file")
|
||||
|| die "Can't open file: $master_file";
|
||||
undef $/;
|
||||
$master_contents = <MASTERZONEFILE>;
|
||||
$/ = $input_record_separator;
|
||||
close (MASTERZONEFILE);
|
||||
|
||||
$new_contents_copy = $new_contents;
|
||||
|
||||
# Strip the TZID from both contents.
|
||||
$new_contents_copy =~ s/^TZID:\S+$//m;
|
||||
$new_tzid = $&;
|
||||
$master_contents =~ s/^TZID:\S+$//m;
|
||||
$master_tzid = $&;
|
||||
|
||||
# print "Matched: $master_tzid\n";
|
||||
|
||||
|
||||
if ($new_contents_copy ne $master_contents) {
|
||||
print "$new_file has changed. Updating...\n";
|
||||
$copy_to_master = 1;
|
||||
|
||||
if ($LIBICAL_VERSIONING) {
|
||||
# We bump the version number in the new file.
|
||||
$master_tzid =~ m%_(\d+)/%;
|
||||
$version_num = $1;
|
||||
# print "Version: $version_num\n";
|
||||
|
||||
$version_num++;
|
||||
$new_tzid =~ s%_(\d+)/%_$version_num/%;
|
||||
|
||||
# print "New TZID: $new_tzid\n";
|
||||
$new_contents =~ s/^TZID:\S+$/$new_tzid/m;
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
print "$new_file doesn't exist in master directory. Copying...\n";
|
||||
$copy_to_master = 1;
|
||||
}
|
||||
|
||||
if ($copy_to_master) {
|
||||
# print "Updating: $new_file\n";
|
||||
|
||||
if ($DO_UPDATES) {
|
||||
open (MASTERZONEFILE, ">$master_file")
|
||||
|| die "Can't create file: $master_file";
|
||||
print MASTERZONEFILE $new_contents;
|
||||
close (MASTERZONEFILE);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
2325
vzic/vzic-output.c
Normal file
2325
vzic/vzic-output.c
Normal file
File diff suppressed because it is too large
Load diff
38
vzic/vzic-output.h
Normal file
38
vzic/vzic-output.h
Normal file
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
* Vzic - a program to convert Olson timezone database files into VZTIMEZONE
|
||||
* files compatible with the iCalendar specification (RFC2445).
|
||||
*
|
||||
* Copyright (C) 2000-2001 Ximian, Inc.
|
||||
* Copyright (C) 2003 Damon Chaplin.
|
||||
*
|
||||
* Author: Damon Chaplin <damon@gnome.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef _VZIC_OUTPUT_H_
|
||||
#define _VZIC_OUTPUT_H_
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
void output_vtimezone_files (char *directory,
|
||||
GArray *zone_data,
|
||||
GHashTable *rule_data,
|
||||
GHashTable *link_data,
|
||||
int max_until_year);
|
||||
|
||||
void ensure_directory_exists (char *directory);
|
||||
|
||||
#endif /* _VZIC_OUTPUT_H_ */
|
901
vzic/vzic-parse.c
Normal file
901
vzic/vzic-parse.c
Normal file
|
@ -0,0 +1,901 @@
|
|||
/*
|
||||
* Vzic - a program to convert Olson timezone database files into VZTIMEZONE
|
||||
* files compatible with the iCalendar specification (RFC2445).
|
||||
*
|
||||
* Copyright (C) 2000-2001 Ximian, Inc.
|
||||
* Copyright (C) 2003 Damon Chaplin.
|
||||
*
|
||||
* Author: Damon Chaplin <damon@gnome.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include <ctype.h>
|
||||
#include <limits.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "vzic.h"
|
||||
#include "vzic-parse.h"
|
||||
|
||||
/* This is the maximum line length we allow. */
|
||||
#define MAX_LINE_LEN 1024
|
||||
|
||||
/* The maximum number of fields on a line. */
|
||||
#define MAX_FIELDS 12
|
||||
|
||||
|
||||
typedef enum
|
||||
{
|
||||
ZONE_ID = 0, /* The 'Zone' at the start of the line. */
|
||||
ZONE_NAME = 1,
|
||||
ZONE_GMTOFF = 2,
|
||||
ZONE_RULES_SAVE = 3,
|
||||
ZONE_FORMAT = 4,
|
||||
ZONE_UNTIL_YEAR = 5,
|
||||
ZONE_UNTIL_MONTH = 6,
|
||||
ZONE_UNTIL_DAY = 7,
|
||||
ZONE_UNTIL_TIME = 8
|
||||
} ZoneFieldNumber;
|
||||
|
||||
|
||||
typedef enum
|
||||
{
|
||||
RULE_ID = 0, /* The 'Rule' at the start of the line. */
|
||||
RULE_NAME = 1,
|
||||
RULE_FROM = 2,
|
||||
RULE_TO = 3,
|
||||
RULE_TYPE = 4,
|
||||
RULE_IN = 5,
|
||||
RULE_ON = 6,
|
||||
RULE_AT = 7,
|
||||
RULE_SAVE = 8,
|
||||
RULE_LETTER_S = 9
|
||||
} RuleFieldNumber;
|
||||
|
||||
|
||||
typedef enum
|
||||
{
|
||||
LINK_ID = 0, /* The 'Link' at the start of the line. */
|
||||
LINK_FROM = 1,
|
||||
LINK_TO = 2
|
||||
} LinkFieldNumber;
|
||||
|
||||
|
||||
/* This struct contains information used while parsing the files, and is
|
||||
passed to most parsing functions. */
|
||||
typedef struct _ParsingData ParsingData;
|
||||
struct _ParsingData
|
||||
{
|
||||
/* This is the line being parsed. buffer is a copy that we break into fields
|
||||
and sub-fields as it is parsed. */
|
||||
char line[MAX_LINE_LEN];
|
||||
char buffer[MAX_LINE_LEN];
|
||||
|
||||
/* These are pointers to the start of each field in buffer. */
|
||||
char *fields[MAX_FIELDS];
|
||||
int num_fields;
|
||||
|
||||
/* These are just for producing error messages. */
|
||||
char *filename;
|
||||
int line_number;
|
||||
|
||||
|
||||
/* This is an array of ZoneData structs, 1 for each timezone read. */
|
||||
GArray *zone_data;
|
||||
|
||||
/* This is a hash table of arrays of RuleData structs. As each Rule line is
|
||||
read in, a new RuleData struct is filled in and appended to the
|
||||
appropriate GArray in the hash table. */
|
||||
GHashTable *rule_data;
|
||||
|
||||
/* A hash containing data on the Link lines. The keys are the timezones
|
||||
where the link is from (i.e. the timezone we will be outputting anyway)
|
||||
and the data is a GList of timezones to link to (where we will copy the
|
||||
timezone data to). */
|
||||
GHashTable *link_data;
|
||||
|
||||
int max_until_year;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Parsing functions, used when reading the Olson timezone data file.
|
||||
*/
|
||||
static void parse_fields (ParsingData *data);
|
||||
static gboolean parse_zone_line (ParsingData *data);
|
||||
static gboolean parse_zone_continuation_line (ParsingData *data);
|
||||
static gboolean parse_zone_common (ParsingData *data,
|
||||
int offset);
|
||||
static void parse_rule_line (ParsingData *data);
|
||||
static void parse_link_line (ParsingData *data);
|
||||
|
||||
static int parse_year (ParsingData *data,
|
||||
char *field,
|
||||
gboolean accept_only,
|
||||
int only_value);
|
||||
static int parse_month (ParsingData *data,
|
||||
char *field);
|
||||
static DayCode parse_day (ParsingData *data,
|
||||
char *field,
|
||||
int *day,
|
||||
int *weekday);
|
||||
static int parse_weekday (ParsingData *data,
|
||||
char *field);
|
||||
static int parse_time (ParsingData *data,
|
||||
char *field,
|
||||
TimeCode *time_code);
|
||||
static int parse_number (ParsingData *data,
|
||||
char **num);
|
||||
static int parse_rules_save (ParsingData *data,
|
||||
char *field,
|
||||
char **rules);
|
||||
|
||||
static void parse_coord (char *coord,
|
||||
int len,
|
||||
int *result);
|
||||
|
||||
void
|
||||
parse_olson_file (char *filename,
|
||||
GArray **zone_data,
|
||||
GHashTable **rule_data,
|
||||
GHashTable **link_data,
|
||||
int *max_until_year)
|
||||
{
|
||||
ParsingData data;
|
||||
FILE *fp;
|
||||
int zone_continues = 0;
|
||||
|
||||
*zone_data = g_array_new (FALSE, FALSE, sizeof (ZoneData));
|
||||
*rule_data = g_hash_table_new (g_str_hash, g_str_equal);
|
||||
*link_data = g_hash_table_new (g_str_hash, g_str_equal);
|
||||
|
||||
fp = fopen (filename, "r");
|
||||
if (!fp) {
|
||||
fprintf (stderr, "Couldn't open file: %s\n", filename);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
data.filename = filename;
|
||||
data.zone_data = *zone_data;
|
||||
data.rule_data = *rule_data;
|
||||
data.link_data = *link_data;
|
||||
data.max_until_year = 0;
|
||||
|
||||
for (data.line_number = 0; ; data.line_number++) {
|
||||
if (fgets (data.line, sizeof (data.line), fp) != data.line)
|
||||
break;
|
||||
|
||||
strcpy (data.buffer, data.line);
|
||||
|
||||
parse_fields (&data);
|
||||
if (data.num_fields == 0)
|
||||
continue;
|
||||
|
||||
if (zone_continues) {
|
||||
zone_continues = parse_zone_continuation_line (&data);
|
||||
} else if (!strcmp (data.fields[0], "Zone")) {
|
||||
zone_continues = parse_zone_line (&data);
|
||||
} else if (!strcmp (data.fields[0], "Rule")) {
|
||||
parse_rule_line (&data);
|
||||
} else if (!strcmp (data.fields[0], "Link")) {
|
||||
parse_link_line (&data);
|
||||
} else if (!strcmp (data.fields[0], "Leap")) {
|
||||
/* We don't care about Leap lines. */
|
||||
} else {
|
||||
fprintf (stderr, "%s:%i: Invalid line.\n%s\n", filename,
|
||||
data.line_number, data.line);
|
||||
exit (1);
|
||||
}
|
||||
}
|
||||
|
||||
if (ferror (fp)) {
|
||||
fprintf (stderr, "Error reading file: %s\n", filename);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
if (zone_continues) {
|
||||
fprintf (stderr, "%s:%i: Zone continuation line expected.\n%s\n",
|
||||
filename, data.line_number, data.line);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
fclose (fp);
|
||||
|
||||
#if 0
|
||||
printf ("Max UNTIL year: %i\n", data.max_until_year);
|
||||
#endif
|
||||
*max_until_year = data.max_until_year;
|
||||
}
|
||||
|
||||
|
||||
/* Converts the line into fields. */
|
||||
static void
|
||||
parse_fields (ParsingData *data)
|
||||
{
|
||||
int i;
|
||||
char *p, *s, ch;
|
||||
|
||||
/* Reset all fields to NULL. */
|
||||
for (i = 0; i < MAX_FIELDS; i++)
|
||||
data->fields[i] = 0;
|
||||
|
||||
data->num_fields = 0;
|
||||
p = data->buffer;
|
||||
|
||||
for (;;) {
|
||||
/* Skip whitespace. */
|
||||
while (isspace (*p))
|
||||
p++;
|
||||
|
||||
/* See if we have reached the end of the line or a comment. */
|
||||
if (*p == '\0' || *p == '#')
|
||||
break;
|
||||
|
||||
/* We must have another field, so save the start position. */
|
||||
data->fields[data->num_fields++] = p;
|
||||
|
||||
/* Now find the end of the field. If the field contains '"' characters
|
||||
they are removed and we have to move the rest of the chars back. */
|
||||
s = p;
|
||||
for (;;) {
|
||||
ch = *p;
|
||||
if (ch == '\0' || ch == '#') {
|
||||
/* Don't move p on since this is the end of the line. */
|
||||
*s = '\0';
|
||||
break;
|
||||
} else if (isspace (ch)) {
|
||||
*s = '\0';
|
||||
p++;
|
||||
break;
|
||||
} else if (ch == '"') {
|
||||
p++;
|
||||
for (;;) {
|
||||
ch = *p;
|
||||
if (ch == '\0') {
|
||||
fprintf (stderr,
|
||||
"%s:%i: Closing quote character ('\"') missing.\n%s\n",
|
||||
data->filename, data->line_number, data->line);
|
||||
exit (1);
|
||||
} else if (ch == '"') {
|
||||
p++;
|
||||
break;
|
||||
} else {
|
||||
*s++ = ch;
|
||||
}
|
||||
p++;
|
||||
}
|
||||
} else {
|
||||
*s++ = ch;
|
||||
}
|
||||
p++;
|
||||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
printf ("%i fields: ", data->num_fields);
|
||||
for (i = 0; i < data->num_fields; i++)
|
||||
printf ("'%s' ", data->fields[i]);
|
||||
printf ("\n");
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
static gboolean
|
||||
parse_zone_line (ParsingData *data)
|
||||
{
|
||||
ZoneData zone;
|
||||
|
||||
/* All 5 fields up to FORMAT must be present. */
|
||||
if (data->num_fields < 5 || data->num_fields > 9) {
|
||||
fprintf (stderr, "%s:%i: Invalid Zone line - %i fields.\n%s\n",
|
||||
data->filename, data->line_number, data->num_fields,
|
||||
data->line);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
zone.zone_name = g_strdup (data->fields[ZONE_NAME]);
|
||||
zone.zone_line_data = g_array_new (FALSE, FALSE, sizeof (ZoneLineData));
|
||||
|
||||
g_array_append_val (data->zone_data, zone);
|
||||
|
||||
return parse_zone_common (data, 0);
|
||||
}
|
||||
|
||||
|
||||
static gboolean
|
||||
parse_zone_continuation_line (ParsingData *data)
|
||||
{
|
||||
/* All 3 fields up to FORMAT must be present. */
|
||||
if (data->num_fields < 3 || data->num_fields > 7) {
|
||||
fprintf (stderr,
|
||||
"%s:%i: Invalid Zone continuation line - %i fields.\n%s\n",
|
||||
data->filename, data->line_number, data->num_fields,
|
||||
data->line);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
return parse_zone_common (data, -2);
|
||||
}
|
||||
|
||||
|
||||
static gboolean
|
||||
parse_zone_common (ParsingData *data,
|
||||
int offset)
|
||||
{
|
||||
ZoneData *zone;
|
||||
ZoneLineData zone_line;
|
||||
TimeCode time_code;
|
||||
|
||||
zone_line.stdoff_seconds = parse_time (data,
|
||||
data->fields[ZONE_GMTOFF + offset],
|
||||
&time_code);
|
||||
zone_line.save_seconds = parse_rules_save (data,
|
||||
data->fields[ZONE_RULES_SAVE + offset],
|
||||
&zone_line.rules);
|
||||
|
||||
if (!VzicPureOutput) {
|
||||
/* We round the UTC offsets to the nearest minute, to be compatible with
|
||||
Outlook. This also works with -ve numbers, I think.
|
||||
-56 % 60 = -59. -61 % 60 = -1. */
|
||||
if (zone_line.stdoff_seconds >= 0)
|
||||
zone_line.stdoff_seconds += 30;
|
||||
else
|
||||
zone_line.stdoff_seconds -= 29;
|
||||
zone_line.stdoff_seconds -= zone_line.stdoff_seconds % 60;
|
||||
|
||||
if (zone_line.save_seconds >= 0)
|
||||
zone_line.save_seconds += 30;
|
||||
else
|
||||
zone_line.save_seconds -= 29;
|
||||
zone_line.save_seconds -= zone_line.save_seconds % 60;
|
||||
}
|
||||
|
||||
zone_line.format = g_strdup (data->fields[ZONE_FORMAT + offset]);
|
||||
|
||||
if (data->num_fields - offset >= 6) {
|
||||
zone_line.until_set = TRUE;
|
||||
zone_line.until_year = parse_year (data,
|
||||
data->fields[ZONE_UNTIL_YEAR + offset],
|
||||
FALSE, 0);
|
||||
zone_line.until_month = parse_month (data,
|
||||
data->fields[ZONE_UNTIL_MONTH + offset]);
|
||||
zone_line.until_day_code = parse_day (data,
|
||||
data->fields[ZONE_UNTIL_DAY + offset],
|
||||
&zone_line.until_day_number,
|
||||
&zone_line.until_day_weekday);
|
||||
zone_line.until_time_seconds = parse_time (data,
|
||||
data->fields[ZONE_UNTIL_TIME + offset],
|
||||
&zone_line.until_time_code);
|
||||
|
||||
/* We also want to know the maximum year used in any UNTIL value, so we
|
||||
know where to expand all the infinite Rule data to. */
|
||||
if (zone_line.until_year != YEAR_MAXIMUM
|
||||
&& zone_line.until_year != YEAR_MINIMUM)
|
||||
data->max_until_year = MAX (data->max_until_year, zone_line.until_year);
|
||||
|
||||
} else {
|
||||
zone_line.until_set = FALSE;
|
||||
}
|
||||
|
||||
/* Append it to the last Zone, since that is the one we are currently
|
||||
reading. */
|
||||
zone = &g_array_index (data->zone_data, ZoneData, data->zone_data->len - 1);
|
||||
g_array_append_val (zone->zone_line_data, zone_line);
|
||||
|
||||
return zone_line.until_set;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
parse_rule_line (ParsingData *data)
|
||||
{
|
||||
GArray *rule_array;
|
||||
RuleData rule;
|
||||
char *name;
|
||||
TimeCode time_code;
|
||||
|
||||
/* All 10 fields must be present. */
|
||||
if (data->num_fields != 10) {
|
||||
fprintf (stderr, "%s:%i: Invalid Rule line - %i fields.\n%s\n",
|
||||
data->filename, data->line_number, data->num_fields,
|
||||
data->line);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
name = data->fields[RULE_NAME];
|
||||
|
||||
/* Create the GArray and add it to the hash table if it doesn't already
|
||||
exist. */
|
||||
rule_array = g_hash_table_lookup (data->rule_data, name);
|
||||
if (!rule_array) {
|
||||
rule_array = g_array_new (FALSE, FALSE, sizeof (RuleData));
|
||||
g_hash_table_insert (data->rule_data, g_strdup (name), rule_array);
|
||||
}
|
||||
|
||||
rule.from_year = parse_year (data, data->fields[RULE_FROM], FALSE, 0);
|
||||
if (rule.from_year == YEAR_MAXIMUM) {
|
||||
fprintf (stderr, "%s:%i: Invalid Rule FROM value: '%s'\n",
|
||||
data->filename, data->line_number, data->fields[RULE_FROM]);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
rule.to_year = parse_year (data, data->fields[RULE_TO], TRUE,
|
||||
rule.from_year);
|
||||
if (rule.to_year == YEAR_MINIMUM) {
|
||||
fprintf (stderr, "%s:%i: Invalid Rule TO value: %s\n",
|
||||
data->filename, data->line_number, data->fields[RULE_TO]);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
if (!strcmp (data->fields[RULE_TYPE], "-"))
|
||||
rule.type = NULL;
|
||||
else {
|
||||
printf ("Type: %s\n", data->fields[RULE_TYPE]);
|
||||
rule.type = g_strdup (data->fields[RULE_TYPE]);
|
||||
}
|
||||
|
||||
rule.in_month = parse_month (data, data->fields[RULE_IN]);
|
||||
rule.on_day_code = parse_day (data, data->fields[RULE_ON],
|
||||
&rule.on_day_number, &rule.on_day_weekday);
|
||||
rule.at_time_seconds = parse_time (data, data->fields[RULE_AT],
|
||||
&rule.at_time_code);
|
||||
rule.save_seconds = parse_time (data, data->fields[RULE_SAVE], &time_code);
|
||||
|
||||
if (!strcmp (data->fields[RULE_LETTER_S], "-")) {
|
||||
rule.letter_s = NULL;
|
||||
} else {
|
||||
rule.letter_s = g_strdup (data->fields[RULE_LETTER_S]);
|
||||
}
|
||||
|
||||
rule.is_shallow_copy = FALSE;
|
||||
|
||||
g_array_append_val (rule_array, rule);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
parse_link_line (ParsingData *data)
|
||||
{
|
||||
char *from, *to, *old_from;
|
||||
GList *zone_list;
|
||||
|
||||
/* We must have 3 fields for a Link. */
|
||||
if (data->num_fields != 3) {
|
||||
fprintf (stderr, "%s:%i: Invalid Rule line - %i fields.\n%s\n",
|
||||
data->filename, data->line_number, data->num_fields,
|
||||
data->line);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
from = data->fields[LINK_FROM];
|
||||
to = data->fields[LINK_TO];
|
||||
|
||||
#if 0
|
||||
printf ("LINK FROM: %s\tTO: %s\n", from, to);
|
||||
#endif
|
||||
|
||||
if (g_hash_table_lookup_extended (data->link_data, from,
|
||||
(gpointer) &old_from,
|
||||
(gpointer) &zone_list)) {
|
||||
from = old_from;
|
||||
} else {
|
||||
from = g_strdup (from);
|
||||
zone_list = NULL;
|
||||
}
|
||||
|
||||
zone_list = g_list_prepend (zone_list, g_strdup (to));
|
||||
|
||||
g_hash_table_insert (data->link_data, from, zone_list);
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
parse_year (ParsingData *data,
|
||||
char *field,
|
||||
gboolean accept_only,
|
||||
int only_value)
|
||||
{
|
||||
int len, year = 0;
|
||||
char *p;
|
||||
|
||||
if (!field) {
|
||||
fprintf (stderr, "%s:%i: Missing year.\n%s\n", data->filename,
|
||||
data->line_number, data->line);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
len = strlen (field);
|
||||
if (accept_only && !strncmp (field, "only", len))
|
||||
return only_value;
|
||||
if (len >= 2) {
|
||||
if (!strncmp (field, "maximum", len))
|
||||
return YEAR_MAXIMUM;
|
||||
else if (!strncmp (field, "minimum", len))
|
||||
return YEAR_MINIMUM;
|
||||
}
|
||||
|
||||
for (p = field; *p; p++) {
|
||||
if (*p < '0' || *p > '9') {
|
||||
fprintf (stderr, "%s:%i: Invalid year: %s\n%s\n", data->filename,
|
||||
data->line_number, field, data->line);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
year = year * 10 + *p - '0';
|
||||
}
|
||||
|
||||
if (year < 1000 || year > 2037) {
|
||||
fprintf (stderr, "%s:%i: Strange year: %s\n%s\n", data->filename,
|
||||
data->line_number, field, data->line);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
return year;
|
||||
}
|
||||
|
||||
|
||||
/* Parses a month name, returning 0 (Jan) to 11 (Dec). */
|
||||
static int
|
||||
parse_month (ParsingData *data,
|
||||
char *field)
|
||||
{
|
||||
static char* months[] = { "january", "february", "march", "april", "may",
|
||||
"june", "july", "august", "september", "october",
|
||||
"november", "december" };
|
||||
char *p;
|
||||
int len, i;
|
||||
|
||||
/* If the field is missing, it must be the optional UNTIL month, so we return
|
||||
0 for January. */
|
||||
if (!field)
|
||||
return 0;
|
||||
|
||||
for (p = field, len = 0; *p; p++, len++) {
|
||||
*p = tolower (*p);
|
||||
}
|
||||
|
||||
for (i = 0; i < 12; i++) {
|
||||
if (!strncmp (field, months[i], len))
|
||||
return i;
|
||||
}
|
||||
|
||||
fprintf (stderr, "%s:%i: Invalid month: %s\n%s\n", data->filename,
|
||||
data->line_number, field, data->line);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
|
||||
/* Parses a day specifier, returning a code representing the type of match
|
||||
together with a day of the month and a weekday number (0=Sun). */
|
||||
static DayCode
|
||||
parse_day (ParsingData *data,
|
||||
char *field,
|
||||
int *day,
|
||||
int *weekday)
|
||||
{
|
||||
char *day_part, *p;
|
||||
DayCode day_code;
|
||||
|
||||
if (!field) {
|
||||
*day = 1;
|
||||
return DAY_SIMPLE;
|
||||
}
|
||||
|
||||
*day = *weekday = 0;
|
||||
|
||||
if (!strncmp (field, "last", 4)) {
|
||||
*weekday = parse_weekday (data, field + 4);
|
||||
/* We set the day to the end of the month to make sorting Rules easy. */
|
||||
*day = 31;
|
||||
return DAY_LAST_WEEKDAY;
|
||||
}
|
||||
|
||||
day_part = field;
|
||||
day_code = DAY_SIMPLE;
|
||||
|
||||
for (p = field; *p; p++) {
|
||||
if (*p == '<' || *p == '>') {
|
||||
if (*(p + 1) == '=') {
|
||||
day_code = (*p == '<') ? DAY_WEEKDAY_ON_OR_BEFORE
|
||||
: DAY_WEEKDAY_ON_OR_AFTER;
|
||||
*p = '\0';
|
||||
*weekday = parse_weekday (data, field);
|
||||
day_part = p + 2;
|
||||
break;
|
||||
}
|
||||
|
||||
fprintf (stderr, "%s:%i: Invalid day: %s\n%s\n", data->filename,
|
||||
data->line_number, field, data->line);
|
||||
exit (1);
|
||||
}
|
||||
}
|
||||
|
||||
for (p = day_part; *p; p++) {
|
||||
if (*p < '0' || *p > '9') {
|
||||
fprintf (stderr, "%s:%i: Invalid day: %s\n%s\n", data->filename,
|
||||
data->line_number, field, data->line);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
*day = *day * 10 + *p - '0';
|
||||
}
|
||||
|
||||
if (*day < 1 || *day > 31) {
|
||||
fprintf (stderr, "%s:%i: Invalid day: %s\n%s\n", data->filename,
|
||||
data->line_number, field, data->line);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
return day_code;
|
||||
}
|
||||
|
||||
|
||||
/* Parses a weekday name, returning 0 (Sun) to 6 (Sat). */
|
||||
static int
|
||||
parse_weekday (ParsingData *data,
|
||||
char *field)
|
||||
{
|
||||
static char* weekdays[] = { "sunday", "monday", "tuesday", "wednesday",
|
||||
"thursday", "friday", "saturday" };
|
||||
char *p;
|
||||
int len, i;
|
||||
|
||||
for (p = field, len = 0; *p; p++, len++) {
|
||||
*p = tolower (*p);
|
||||
}
|
||||
|
||||
for (i = 0; i < 7; i++) {
|
||||
if (!strncmp (field, weekdays[i], len))
|
||||
return i;
|
||||
}
|
||||
|
||||
fprintf (stderr, "%s:%i: Invalid weekday: %s\n%s\n", data->filename,
|
||||
data->line_number, field, data->line);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
|
||||
/* Parses a time (hour + minute + second) and returns the result in seconds,
|
||||
together with a time code specifying whether it is Wall clock time,
|
||||
local standard time, or universal time.
|
||||
The time can start with a '-' in which case it will be negative. */
|
||||
static int
|
||||
parse_time (ParsingData *data,
|
||||
char *field,
|
||||
TimeCode *time_code)
|
||||
{
|
||||
char *p;
|
||||
int hours = 0, minutes = 0, seconds = 0, result, negative = 0;
|
||||
|
||||
if (!field) {
|
||||
*time_code = TIME_WALL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
p = field;
|
||||
if (*p == '-') {
|
||||
p++;
|
||||
negative = 1;
|
||||
}
|
||||
|
||||
hours = parse_number (data, &p);
|
||||
|
||||
if (*p == ':') {
|
||||
p++;
|
||||
minutes = parse_number (data, &p);
|
||||
|
||||
if (*p == ':') {
|
||||
p++;
|
||||
seconds = parse_number (data, &p);
|
||||
}
|
||||
}
|
||||
|
||||
if (hours < 0 || hours > 24
|
||||
|| minutes < 0 || minutes > 59
|
||||
|| seconds < 0 || seconds > 59
|
||||
|| (hours == 24 && (minutes != 0 || seconds != 0))) {
|
||||
fprintf (stderr, "%s:%i: Invalid time: %s\n%s\n", data->filename,
|
||||
data->line_number, field, data->line);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
if (hours == 24) {
|
||||
hours = 23;
|
||||
minutes = 59;
|
||||
seconds = 59;
|
||||
}
|
||||
|
||||
#if 0
|
||||
printf ("Time: %s -> %i:%02i:%02i\n", field, hours, minutes, seconds);
|
||||
#endif
|
||||
|
||||
result = hours * 3600 + minutes * 60 + seconds;
|
||||
if (negative)
|
||||
result = -result;
|
||||
|
||||
if (*p == '\0') {
|
||||
*time_code = TIME_WALL;
|
||||
return result;
|
||||
}
|
||||
|
||||
if (*(p + 1) == '\0') {
|
||||
if (*p == 'w') {
|
||||
*time_code = TIME_WALL;
|
||||
return result;
|
||||
} else if (*p == 's') {
|
||||
*time_code = TIME_STANDARD;
|
||||
return result;
|
||||
} else if (*p == 'u' || *p == 'g' || *p == 'z') {
|
||||
*time_code = TIME_UNIVERSAL;
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
fprintf (stderr, "%s:%i: Invalid time: %s\n%s\n", data->filename,
|
||||
data->line_number, field, data->line);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
|
||||
/* Parses a simple number and returns the result. The pointer argument
|
||||
is moved to the first character after the number. */
|
||||
static int
|
||||
parse_number (ParsingData *data,
|
||||
char **num)
|
||||
{
|
||||
char *p;
|
||||
int result;
|
||||
|
||||
p = *num;
|
||||
|
||||
#if 0
|
||||
printf ("In parse_number p:%s\n", p);
|
||||
#endif
|
||||
|
||||
if (*p < '0' || *p > '9') {
|
||||
fprintf (stderr, "%s:%i: Invalid number: %s\n%s\n", data->filename,
|
||||
data->line_number, *num, data->line);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
result = *p++ - '0';
|
||||
|
||||
while (*p >= '0' && *p <= '9')
|
||||
result = result * 10 + *p++ - '0';
|
||||
|
||||
*num = p;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
parse_rules_save (ParsingData *data,
|
||||
char *field,
|
||||
char **rules)
|
||||
{
|
||||
TimeCode time_code;
|
||||
|
||||
*rules = NULL;
|
||||
|
||||
/* Check for just "-". */
|
||||
if (field[0] == '-' && field[1] == '\0')
|
||||
return 0;
|
||||
|
||||
/* Check for a time to add to local standard time. We don't care about a
|
||||
time code here, since it is just an offset. */
|
||||
if (*field == '-' || (*field >= '0' && *field <= '9'))
|
||||
return parse_time (data, field, &time_code);
|
||||
|
||||
/* It must be a rules name. */
|
||||
*rules = g_strdup (field);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
GHashTable*
|
||||
parse_zone_tab (char *filename)
|
||||
{
|
||||
GHashTable *zones_hash;
|
||||
ZoneDescription *zone_desc;
|
||||
FILE *fp;
|
||||
char buf[4096];
|
||||
gchar **fields, *zone_name, *latitude, *longitude, *p;
|
||||
|
||||
|
||||
fp = fopen (filename, "r");
|
||||
if (!fp) {
|
||||
fprintf (stderr, "Couldn't open file: %s\n", filename);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
zones_hash = g_hash_table_new (g_str_hash, g_str_equal);
|
||||
|
||||
while (fgets (buf, sizeof(buf), fp)) {
|
||||
if (*buf == '#') continue;
|
||||
|
||||
g_strchomp (buf);
|
||||
fields = g_strsplit (buf,"\t", 4);
|
||||
|
||||
if (strlen (fields[0]) != 2) {
|
||||
fprintf (stderr, "Invalid zone description line: %s\n", buf);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
zone_name = g_strdup (fields[2]);
|
||||
|
||||
zone_desc = g_new (ZoneDescription, 1);
|
||||
zone_desc->country_code[0] = fields[0][0];
|
||||
zone_desc->country_code[1] = fields[0][1];
|
||||
zone_desc->comment = (fields[3] && fields[3][0]) ? g_strdup (fields[3])
|
||||
: NULL;
|
||||
|
||||
/* Now parse the latitude and longitude. */
|
||||
latitude = fields[1];
|
||||
longitude = latitude + 1;
|
||||
while (*longitude != '+' && *longitude != '-')
|
||||
longitude++;
|
||||
|
||||
parse_coord (latitude, longitude - latitude, zone_desc->latitude);
|
||||
parse_coord (longitude, strlen (longitude), zone_desc->longitude);
|
||||
|
||||
g_hash_table_insert (zones_hash, zone_name, zone_desc);
|
||||
|
||||
#if 0
|
||||
g_print ("Found zone: %s %i %02i %02i,%i %02i %02i\n", zone_name,
|
||||
zone_desc->latitude[0], zone_desc->latitude[1],
|
||||
zone_desc->latitude[2],
|
||||
zone_desc->longitude[0], zone_desc->longitude[1],
|
||||
zone_desc->longitude[2]);
|
||||
#endif
|
||||
}
|
||||
|
||||
fclose (fp);
|
||||
|
||||
return zones_hash;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
parse_coord (char *coord,
|
||||
int len,
|
||||
int *result)
|
||||
{
|
||||
int degrees = 0, minutes = 0, seconds = 0;
|
||||
|
||||
if (len == 5)
|
||||
sscanf (coord + 1, "%2d%2d", °rees, &minutes);
|
||||
else if (len == 6)
|
||||
sscanf (coord + 1, "%3d%2d", °rees, &minutes);
|
||||
else if (len == 7)
|
||||
sscanf (coord + 1, "%2d%2d%2d", °rees, &minutes, &seconds);
|
||||
else if (len == 8)
|
||||
sscanf (coord + 1, "%3d%2d%2d", °rees, &minutes, &seconds);
|
||||
else {
|
||||
fprintf (stderr, "Invalid coordinate: %s\n", coord);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
if (coord[0] == '-')
|
||||
degrees = -degrees;
|
||||
|
||||
result[0] = degrees;
|
||||
result[1] = minutes;
|
||||
result[2] = seconds;
|
||||
}
|
||||
|
38
vzic/vzic-parse.h
Normal file
38
vzic/vzic-parse.h
Normal file
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
* Vzic - a program to convert Olson timezone database files into VZTIMEZONE
|
||||
* files compatible with the iCalendar specification (RFC2445).
|
||||
*
|
||||
* Copyright (C) 2000-2001 Ximian, Inc.
|
||||
* Copyright (C) 2003 Damon Chaplin.
|
||||
*
|
||||
* Author: Damon Chaplin <damon@gnome.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef _VZIC_PARSE_H_
|
||||
#define _VZIC_PARSE_H_
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
void parse_olson_file (char *filename,
|
||||
GArray **zone_data,
|
||||
GHashTable **rule_data,
|
||||
GHashTable **link_data,
|
||||
int *max_until_year);
|
||||
|
||||
GHashTable* parse_zone_tab (char *filename);
|
||||
|
||||
#endif /* _VZIC_PARSE_H_ */
|
164
vzic/vzic-test.pl
Executable file
164
vzic/vzic-test.pl
Executable file
|
@ -0,0 +1,164 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
#
|
||||
# Vzic - a program to convert Olson timezone database files into VZTIMEZONE
|
||||
# files compatible with the iCalendar specification (RFC2445).
|
||||
#
|
||||
# Copyright (C) 2001 Ximian, Inc.
|
||||
# Copyright (C) 2003 Damon Chaplin.
|
||||
#
|
||||
# Author: Damon Chaplin <damon@gnome.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
#
|
||||
|
||||
#
|
||||
# This outputs an iCalendar file containing one event in each timezone,
|
||||
# as well as all the VTIMEZONEs. We use it for testing compatability with
|
||||
# other iCalendar apps like Outlook, by trying to import it there.
|
||||
#
|
||||
# Currently we have 377 timezones (with tzdata2001d).
|
||||
#
|
||||
|
||||
# Set this to the toplevel directory of the VTIMEZONE files.
|
||||
$ZONEINFO_DIR = "/home/damon/src/zoneinfo";
|
||||
|
||||
$output_file = "calendar.ics";
|
||||
|
||||
|
||||
# Save this so we can restore it later.
|
||||
$input_record_separator = $/;
|
||||
|
||||
chdir $ZONEINFO_DIR
|
||||
|| die "Can't cd to $ZONEINFO_DIR";
|
||||
|
||||
# Create the output file, to contain all the VEVENTs & VTIMEZONEs.
|
||||
open (OUTPUTFILE, ">$output_file")
|
||||
|| die "Can't create file: $output_file";
|
||||
|
||||
# Output the standard header.
|
||||
print OUTPUTFILE <<EOF;
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Ximian//NONSGML Vzic Test//EN
|
||||
VERSION:2.0
|
||||
METHOD:PUBLISH
|
||||
EOF
|
||||
|
||||
$zone_num = 0;
|
||||
|
||||
# 365 days in a non-leap year.
|
||||
@days_in_month = ( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 );
|
||||
|
||||
foreach $file (`find -name "*.ics"`) {
|
||||
# Get rid of './' at start and whitespace at end.
|
||||
$file =~ s/^\.\///;
|
||||
$file =~ s/\s+$//;
|
||||
|
||||
if ($file eq $output_file) {
|
||||
next;
|
||||
}
|
||||
|
||||
# print "File: $file\n";
|
||||
|
||||
# Get the VTIMEZONE data.
|
||||
open (ZONEFILE, "$file")
|
||||
|| die "Can't open file: $ZONEINFO_DIR/$file";
|
||||
undef $/;
|
||||
$vtimezone = <ZONEFILE>;
|
||||
$/ = $input_record_separator;
|
||||
close (ZONEFILE);
|
||||
|
||||
# Strip the stuff before and after the VTIMEZONE component
|
||||
$vtimezone =~ s/^.*BEGIN:VTIMEZONE/BEGIN:VTIMEZONE/s;
|
||||
$vtimezone =~ s/END:VTIMEZONE.*$/END:VTIMEZONE\n/s;
|
||||
|
||||
print OUTPUTFILE $vtimezone;
|
||||
|
||||
# Find the TZID.
|
||||
$vtimezone =~ m/TZID:(.*)/;
|
||||
$tzid = $1;
|
||||
# print "TZID: $tzid\n";
|
||||
|
||||
# Find the location.
|
||||
$file =~ m/(.*)\.ics/;
|
||||
$location = $1;
|
||||
# print "LOCATION: $location\n";
|
||||
|
||||
# Try to find the current UTC offset that Outlook will use.
|
||||
# If there is an RRULE, we look for the first 2 TZOFFSETTO properties,
|
||||
# else we just get the first one.
|
||||
if ($vtimezone =~ m/RRULE/) {
|
||||
$vtimezone =~ m/TZOFFSETTO:([+-]?\d+)/;
|
||||
$tzoffsetto = $1;
|
||||
$vtimezone =~ m/TZOFFSETFROM:([+-]?\d+)/;
|
||||
$tzoffsetfrom = $1;
|
||||
$tzoffset = "$tzoffsetfrom/$tzoffsetto";
|
||||
} else {
|
||||
$vtimezone =~ m/TZOFFSETTO:([+-]?\d+)/s;
|
||||
$tzoffset = $1;
|
||||
}
|
||||
# print "TZOFFSET: $tzoffset\n";
|
||||
|
||||
# We put each event on a separate day in 2001 and Jan 2002.
|
||||
$day_num = $zone_num;
|
||||
if ($day_num >= 365) {
|
||||
$year = 2002;
|
||||
$day_num -= 365;
|
||||
} else {
|
||||
$year = 2001;
|
||||
}
|
||||
$month = -1;
|
||||
for ($i = 0; $i < 12; $i++) {
|
||||
if ($day_num < $days_in_month[$i]) {
|
||||
$month = $i;
|
||||
last;
|
||||
}
|
||||
$day_num -= $days_in_month[$i]
|
||||
}
|
||||
if ($month == -1) {
|
||||
die "month = -1";
|
||||
}
|
||||
|
||||
$month++;
|
||||
$day_num++;
|
||||
$date = sprintf ("%i%02i%02i", $year, $month, $day_num);
|
||||
# print "Date: $date\n";
|
||||
|
||||
# Output a VEVENT using the timezone.
|
||||
print OUTPUTFILE <<EOF;
|
||||
BEGIN:VEVENT
|
||||
UID:vzic-test-${zone_num}
|
||||
DTSTAMP:20010101T000000Z
|
||||
DTSTART;TZID=${tzid}:${date}T120000
|
||||
DTEND;TZID=${tzid}:${date}T130000
|
||||
RRULE:FREQ=MONTHLY;BYMONTHDAY=${day_num}
|
||||
SUMMARY:($tzoffset) ${location} 12:00-13:00 UTC
|
||||
SEQUENCE:1
|
||||
END:VEVENT
|
||||
EOF
|
||||
|
||||
$zone_num++;
|
||||
|
||||
# Use this to stop after a certain number.
|
||||
# last if ($zone_num == 100);
|
||||
}
|
||||
|
||||
# Output the standard footer.
|
||||
print OUTPUTFILE <<EOF;
|
||||
END:VCALENDAR
|
||||
EOF
|
||||
|
||||
close (OUTPUTFILE);
|
||||
|
320
vzic/vzic.c
Normal file
320
vzic/vzic.c
Normal file
|
@ -0,0 +1,320 @@
|
|||
/*
|
||||
* Vzic - a program to convert Olson timezone database files into VZTIMEZONE
|
||||
* files compatible with the iCalendar specification (RFC2445).
|
||||
*
|
||||
* Copyright (C) 2000-2001 Ximian, Inc.
|
||||
* Copyright (C) 2003 Damon Chaplin.
|
||||
*
|
||||
* Author: Damon Chaplin <damon@gnome.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "vzic.h"
|
||||
#include "vzic-parse.h"
|
||||
#include "vzic-dump.h"
|
||||
#include "vzic-output.h"
|
||||
|
||||
|
||||
/*
|
||||
* Global command-line options.
|
||||
*/
|
||||
|
||||
/* By default we output Outlook-compatible output. If --pure is used we
|
||||
output pure output, with no changes to be compatible with Outlook. */
|
||||
gboolean VzicPureOutput = FALSE;
|
||||
|
||||
gboolean VzicDumpOutput = FALSE;
|
||||
gboolean VzicDumpChanges = FALSE;
|
||||
gboolean VzicDumpZoneNamesAndCoords = TRUE;
|
||||
gboolean VzicDumpZoneTranslatableStrings= TRUE;
|
||||
gboolean VzicNoRRules = FALSE;
|
||||
gboolean VzicNoRDates = FALSE;
|
||||
char* VzicOutputDir = "zoneinfo";
|
||||
char* VzicUrlPrefix = NULL;
|
||||
char* VzicOlsonDir = OLSON_DIR;
|
||||
|
||||
GList* VzicTimeZoneNames = NULL;
|
||||
|
||||
static void convert_olson_file (char *olson_file);
|
||||
|
||||
static void usage (void);
|
||||
|
||||
static void free_zone_data (GArray *zone_data);
|
||||
static void free_rule_array (gpointer key,
|
||||
gpointer value,
|
||||
gpointer data);
|
||||
static void free_link_data (gpointer key,
|
||||
gpointer value,
|
||||
gpointer data);
|
||||
|
||||
|
||||
int
|
||||
main (int argc,
|
||||
char *argv[])
|
||||
{
|
||||
int i;
|
||||
char directory[PATHNAME_BUFFER_SIZE];
|
||||
char filename[PATHNAME_BUFFER_SIZE];
|
||||
GHashTable *zones_hash;
|
||||
|
||||
/*
|
||||
* Command-Line Option Parsing.
|
||||
*/
|
||||
for (i = 1; i < argc; i++) {
|
||||
/*
|
||||
* User Options.
|
||||
*/
|
||||
|
||||
/* --pure: Output the perfect VCALENDAR data, which Outlook won't parse
|
||||
as it has problems with certain iCalendar constructs. */
|
||||
if (!strcmp (argv[i], "--pure"))
|
||||
VzicPureOutput = TRUE;
|
||||
|
||||
/* --output-dir: specify where to output all the files beneath. The
|
||||
default is the current directory. */
|
||||
else if (argc > i + 1 && !strcmp (argv[i], "--output-dir"))
|
||||
VzicOutputDir = argv[++i];
|
||||
|
||||
/* --url-prefix: Used as the base for the TZURL property in each
|
||||
VTIMEZONE. The default is to not output TZURL properties. */
|
||||
else if (argc > i + 1 && !strcmp (argv[i], "--url-prefix")) {
|
||||
int length;
|
||||
VzicUrlPrefix = argv[++i];
|
||||
/* remove the trailing '/' if there is one */
|
||||
length = strlen (VzicUrlPrefix);
|
||||
if (VzicUrlPrefix[length - 1] == '/')
|
||||
VzicUrlPrefix[length - 1] = '\0';
|
||||
}
|
||||
|
||||
else if (argc > i + 1 && !strcmp (argv[i], "--olson-dir")) {
|
||||
VzicOlsonDir = argv[++i];
|
||||
}
|
||||
|
||||
/*
|
||||
* Debugging Options.
|
||||
*/
|
||||
|
||||
/* --dump: Dump the Rule and Zone data that we parsed from the Olson
|
||||
timezone files. This is used to test the parsing code. */
|
||||
else if (!strcmp (argv[i], "--dump"))
|
||||
VzicDumpOutput = TRUE;
|
||||
|
||||
/* --dump-changes: Dumps a list of times when each timezone changed,
|
||||
and the new local time offset from UTC. */
|
||||
else if (!strcmp (argv[i], "--dump-changes"))
|
||||
VzicDumpChanges = TRUE;
|
||||
|
||||
/* --no-rrules: Don't output RRULE properties in the VTIMEZONEs. Instead
|
||||
it will just output RDATEs for each year up to a certain year. */
|
||||
else if (!strcmp (argv[i], "--no-rrules"))
|
||||
VzicNoRRules = TRUE;
|
||||
|
||||
/* --no-rdates: Don't output multiple RDATEs in a single VTIMEZONE
|
||||
component. Instead they will be output separately. */
|
||||
else if (!strcmp (argv[i], "--no-rdates"))
|
||||
VzicNoRDates = TRUE;
|
||||
|
||||
else
|
||||
usage ();
|
||||
}
|
||||
|
||||
/*
|
||||
* Create any necessary directories.
|
||||
*/
|
||||
ensure_directory_exists (VzicOutputDir);
|
||||
|
||||
if (VzicDumpOutput) {
|
||||
/* Create the directories for the dump output, if they don't exist. */
|
||||
sprintf (directory, "%s/ZonesVzic", VzicOutputDir);
|
||||
ensure_directory_exists (directory);
|
||||
sprintf (directory, "%s/RulesVzic", VzicOutputDir);
|
||||
ensure_directory_exists (directory);
|
||||
}
|
||||
|
||||
if (VzicDumpChanges) {
|
||||
/* Create the directory for the changes output, if it doesn't exist. */
|
||||
sprintf (directory, "%s/ChangesVzic", VzicOutputDir);
|
||||
ensure_directory_exists (directory);
|
||||
}
|
||||
|
||||
/*
|
||||
* Convert the Olson timezone files.
|
||||
*/
|
||||
convert_olson_file ("africa");
|
||||
convert_olson_file ("antarctica");
|
||||
convert_olson_file ("asia");
|
||||
convert_olson_file ("australasia");
|
||||
convert_olson_file ("europe");
|
||||
convert_olson_file ("northamerica");
|
||||
convert_olson_file ("southamerica");
|
||||
|
||||
/* These are backwards-compatability and weird stuff. */
|
||||
#if 0
|
||||
convert_olson_file ("backward");
|
||||
convert_olson_file ("etcetera");
|
||||
convert_olson_file ("leapseconds");
|
||||
convert_olson_file ("pacificnew");
|
||||
convert_olson_file ("solar87");
|
||||
convert_olson_file ("solar88");
|
||||
convert_olson_file ("solar89");
|
||||
#endif
|
||||
|
||||
/* This doesn't really do anything and it messes up vzic-dump.pl so we
|
||||
don't bother. */
|
||||
#if 0
|
||||
convert_olson_file ("factory");
|
||||
#endif
|
||||
|
||||
/* This is old System V stuff, which we don't currently support since it
|
||||
uses 'min' as a Rule FROM value which messes up our algorithm, making
|
||||
it too slow and use too much memory. */
|
||||
#if 0
|
||||
convert_olson_file ("systemv");
|
||||
#endif
|
||||
|
||||
/* Output the timezone names and coordinates in a zone.tab file, and
|
||||
the translatable strings to feed to gettext. */
|
||||
if (VzicDumpZoneNamesAndCoords) {
|
||||
sprintf (filename, "%s/zone.tab", VzicOlsonDir);
|
||||
zones_hash = parse_zone_tab (filename);
|
||||
|
||||
dump_time_zone_names (VzicTimeZoneNames, VzicOutputDir, zones_hash);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
convert_olson_file (char *olson_file)
|
||||
{
|
||||
char input_filename[PATHNAME_BUFFER_SIZE];
|
||||
GArray *zone_data;
|
||||
GHashTable *rule_data, *link_data;
|
||||
char dump_filename[PATHNAME_BUFFER_SIZE];
|
||||
ZoneData *zone;
|
||||
int i, max_until_year;
|
||||
|
||||
sprintf (input_filename, "%s/%s", VzicOlsonDir, olson_file);
|
||||
|
||||
parse_olson_file (input_filename, &zone_data, &rule_data, &link_data,
|
||||
&max_until_year);
|
||||
|
||||
if (VzicDumpOutput) {
|
||||
sprintf (dump_filename, "%s/ZonesVzic/%s", VzicOutputDir, olson_file);
|
||||
dump_zone_data (zone_data, dump_filename);
|
||||
|
||||
sprintf (dump_filename, "%s/RulesVzic/%s", VzicOutputDir, olson_file);
|
||||
dump_rule_data (rule_data, dump_filename);
|
||||
}
|
||||
|
||||
output_vtimezone_files (VzicOutputDir, zone_data, rule_data, link_data,
|
||||
max_until_year);
|
||||
|
||||
free_zone_data (zone_data);
|
||||
g_hash_table_foreach (rule_data, free_rule_array, NULL);
|
||||
g_hash_table_destroy (rule_data);
|
||||
g_hash_table_foreach (link_data, free_link_data, NULL);
|
||||
g_hash_table_destroy (link_data);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
usage (void)
|
||||
{
|
||||
fprintf (stderr, "Usage: vzic [--dump] [--dump-changes] [--no-rrules] [--no-rdates] [--pure] [--output-dir <directory>] [--url-prefix <url>] [--olson-dir <directory>]\n");
|
||||
|
||||
exit (1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Functions to free the data structures.
|
||||
*/
|
||||
|
||||
static void
|
||||
free_zone_data (GArray *zone_data)
|
||||
{
|
||||
ZoneData *zone;
|
||||
ZoneLineData *zone_line;
|
||||
int i, j;
|
||||
|
||||
for (i = 0; i < zone_data->len; i++) {
|
||||
zone = &g_array_index (zone_data, ZoneData, i);
|
||||
|
||||
g_free (zone->zone_name);
|
||||
|
||||
for (j = 0; j < zone->zone_line_data->len; j++) {
|
||||
zone_line = &g_array_index (zone->zone_line_data, ZoneLineData, j);
|
||||
|
||||
g_free (zone_line->rules);
|
||||
g_free (zone_line->format);
|
||||
}
|
||||
|
||||
g_array_free (zone->zone_line_data, TRUE);
|
||||
}
|
||||
|
||||
g_array_free (zone_data, TRUE);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
free_rule_array (gpointer key,
|
||||
gpointer value,
|
||||
gpointer data)
|
||||
{
|
||||
char *name = key;
|
||||
GArray *rule_array = value;
|
||||
RuleData *rule;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < rule_array->len; i++) {
|
||||
rule = &g_array_index (rule_array, RuleData, i);
|
||||
|
||||
if (!rule->is_shallow_copy) {
|
||||
g_free (rule->type);
|
||||
g_free (rule->letter_s);
|
||||
}
|
||||
}
|
||||
|
||||
g_array_free (rule_array, TRUE);
|
||||
|
||||
g_free (name);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
free_link_data (gpointer key,
|
||||
gpointer value,
|
||||
gpointer data)
|
||||
{
|
||||
GList *link = data;
|
||||
|
||||
g_free (key);
|
||||
|
||||
while (link) {
|
||||
g_free (link->data);
|
||||
link = link->next;
|
||||
}
|
||||
|
||||
g_list_free (data);
|
||||
}
|
||||
|
196
vzic/vzic.h
Normal file
196
vzic/vzic.h
Normal file
|
@ -0,0 +1,196 @@
|
|||
/*
|
||||
* Vzic - a program to convert Olson timezone database files into VZTIMEZONE
|
||||
* files compatible with the iCalendar specification (RFC2445).
|
||||
*
|
||||
* Copyright (C) 2000-2001 Ximian, Inc.
|
||||
* Copyright (C) 2003 Damon Chaplin.
|
||||
*
|
||||
* Author: Damon Chaplin <damon@gnome.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef _VZIC_H_
|
||||
#define _VZIC_H_
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
|
||||
/*
|
||||
* Global command-line options.
|
||||
*/
|
||||
|
||||
/* By default we output Outlook-compatible output. If --pure is used we output
|
||||
pure output, with no changes to be compatible with Outlook. */
|
||||
extern gboolean VzicPureOutput;
|
||||
|
||||
extern gboolean VzicDumpOutput;
|
||||
extern gboolean VzicDumpChanges;
|
||||
extern gboolean VzicDumpZoneNamesAndCoords;
|
||||
extern gboolean VzicDumpZoneTranslatableStrings;
|
||||
extern gboolean VzicNoRRules;
|
||||
extern gboolean VzicNoRDates;
|
||||
extern char* VzicUrlPrefix;
|
||||
|
||||
extern GList* VzicTimeZoneNames;
|
||||
|
||||
/* The minimum & maximum years we can use. */
|
||||
#define YEAR_MINIMUM G_MININT
|
||||
#define YEAR_MAXIMUM G_MAXINT
|
||||
|
||||
/* The maximum size of any complete pathname. */
|
||||
#define PATHNAME_BUFFER_SIZE 1024
|
||||
|
||||
/* Days can be expressed either as a simple month day number, 1-31, or a rule
|
||||
such as the last Sunday, or the first Monday on or after the 8th. */
|
||||
typedef enum
|
||||
{
|
||||
DAY_SIMPLE,
|
||||
DAY_WEEKDAY_ON_OR_AFTER,
|
||||
DAY_WEEKDAY_ON_OR_BEFORE,
|
||||
DAY_LAST_WEEKDAY
|
||||
} DayCode;
|
||||
|
||||
|
||||
/* Times can be given either as universal time (UTC), local standard time
|
||||
(without daylight-saving adjustments) or wall clock time (local standard
|
||||
time plus daylight-saving adjustments, i.e. what you would see on a clock
|
||||
on the wall!). */
|
||||
typedef enum
|
||||
{
|
||||
TIME_WALL,
|
||||
TIME_STANDARD,
|
||||
TIME_UNIVERSAL
|
||||
} TimeCode;
|
||||
|
||||
|
||||
/* This represents one timezone, e.g. "Africa/Algiers".
|
||||
It contains the timezone name, and an array of ZoneLineData structs which
|
||||
hold data from each Zone line, including the continuation lines. */
|
||||
typedef struct _ZoneData ZoneData;
|
||||
struct _ZoneData
|
||||
{
|
||||
char *zone_name;
|
||||
|
||||
/* An array of ZoneLineData, one for each Zone & Zone continuation line
|
||||
read in. */
|
||||
GArray *zone_line_data;
|
||||
};
|
||||
|
||||
|
||||
typedef struct _ZoneLineData ZoneLineData;
|
||||
struct _ZoneLineData
|
||||
{
|
||||
/* The amount of time to add to UTC to get local standard time for the
|
||||
current time range, in seconds. */
|
||||
int stdoff_seconds;
|
||||
|
||||
/* Either rules is set to the name of a set of rules, or rules is NULL and
|
||||
save is set to the time to add to local standard time to get wall time, in
|
||||
seconds. If save is 0 as well, then standard time always applies. */
|
||||
char *rules;
|
||||
int save_seconds;
|
||||
|
||||
/* The format to use for the abbreviated timezone name, e.g. WE%sT.
|
||||
The %s is replaced by variable part of the name. (See the letter_s field
|
||||
in the RuleData struct below). */
|
||||
char *format;
|
||||
|
||||
/* TRUE if an UNTIL time is given. */
|
||||
gboolean until_set;
|
||||
|
||||
/* The UNTIL year, e.g. 2000. */
|
||||
int until_year;
|
||||
|
||||
/* The UNTIL month 0 (Jan) to 11 (Dec). */
|
||||
int until_month;
|
||||
|
||||
/* The UNTIL day, either a simple month day number, 1-31, or a rule such as
|
||||
the last Sunday, or the first Monday on or after the 8th. */
|
||||
DayCode until_day_code;
|
||||
int until_day_number; /* 1 to 31. */
|
||||
int until_day_weekday; /* 0 (Sun) to 6 (Sat). */
|
||||
|
||||
/* The UNTIL time, in seconds from midnight. The code specifies whether the
|
||||
time is a wall clock time, local standard time, or universal time. */
|
||||
int until_time_seconds;
|
||||
TimeCode until_time_code;
|
||||
};
|
||||
|
||||
|
||||
typedef struct _RuleData RuleData;
|
||||
struct _RuleData
|
||||
{
|
||||
/* The first year that the rule applies to, e.g. 1996.
|
||||
Can also be YEAR_MINIMUM. */
|
||||
int from_year;
|
||||
|
||||
/* The last year that the rule applies to, e.g. 1996.
|
||||
Can also be YEAR_MAXIMUM. */
|
||||
int to_year;
|
||||
|
||||
/* A string used to only match certain years between from and to.
|
||||
The rule only applies to the years which match. If type is NULL the rule
|
||||
applies to all years betweeen from and to.
|
||||
zic uses an external program called yearistype to check the string.
|
||||
Currently it is not used in the Olson database. */
|
||||
char *type;
|
||||
|
||||
/* The month of the rule 0 (Jan) to 11 (Dec). */
|
||||
int in_month;
|
||||
|
||||
/* The day, either a simple month day number, 1-31, or a rule such as
|
||||
the last Sunday, or the first Monday on or after the 8th. */
|
||||
DayCode on_day_code;
|
||||
int on_day_number;
|
||||
int on_day_weekday; /* 0 (Sun) to 6 (Sat). */
|
||||
|
||||
/* The time, in seconds from midnight. The code specifies whether the
|
||||
time is a wall clock time, local standard time, or universal time. */
|
||||
int at_time_seconds;
|
||||
TimeCode at_time_code;
|
||||
|
||||
/* The amount of time to add to local standard time when the rule is in
|
||||
effect, in seconds. If this is not 0 then it must be a daylight-saving
|
||||
time. */
|
||||
int save_seconds;
|
||||
|
||||
/* The letter(s) to use as the variable part in the abbreviated timezone
|
||||
name. If this is NULL then no variable part is used. (See the format field
|
||||
in the ZoneLineData struct above.) */
|
||||
char *letter_s;
|
||||
|
||||
|
||||
/* This is set to TRUE if this element is a shallow copy of another one,
|
||||
in which case we don't free any of the fields. */
|
||||
gboolean is_shallow_copy;
|
||||
};
|
||||
|
||||
|
||||
typedef struct _ZoneDescription ZoneDescription;
|
||||
struct _ZoneDescription
|
||||
{
|
||||
/* 2-letter ISO 3166 country code. */
|
||||
char country_code[2];
|
||||
|
||||
/* latitude and longitude in degrees, minutes & seconds. The degrees value
|
||||
holds the sign of the entire latitude/longitude. */
|
||||
int latitude[3];
|
||||
int longitude[3];
|
||||
|
||||
char *comment;
|
||||
};
|
||||
|
||||
#endif /* _VZIC_H_ */
|
15
vzic/zoneinfo/Africa/Abidjan.ics
Normal file
15
vzic/zoneinfo/Africa/Abidjan.ics
Normal file
|
@ -0,0 +1,15 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Abidjan
|
||||
X-LIC-LOCATION:Africa/Abidjan
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-001608
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:GMT
|
||||
DTSTART:19120101T000000
|
||||
RDATE:19120101T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
41
vzic/zoneinfo/Africa/Accra.ics
Normal file
41
vzic/zoneinfo/Africa/Accra.ics
Normal file
|
@ -0,0 +1,41 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Accra
|
||||
X-LIC-LOCATION:Africa/Accra
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-000052
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:GMT
|
||||
DTSTART:19180101T000000
|
||||
RDATE:19180101T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:+0000
|
||||
TZOFFSETTO:+0020
|
||||
TZNAME:GHST
|
||||
DTSTART:19360901T000000
|
||||
RDATE:19360901T000000
|
||||
RDATE:19370901T000000
|
||||
RDATE:19380901T000000
|
||||
RDATE:19390901T000000
|
||||
RDATE:19400901T000000
|
||||
RDATE:19410901T000000
|
||||
RDATE:19420901T000000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0020
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:GMT
|
||||
DTSTART:19361231T000000
|
||||
RDATE:19361231T000000
|
||||
RDATE:19371231T000000
|
||||
RDATE:19381231T000000
|
||||
RDATE:19391231T000000
|
||||
RDATE:19401231T000000
|
||||
RDATE:19411231T000000
|
||||
RDATE:19421231T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
22
vzic/zoneinfo/Africa/Addis_Ababa.ics
Normal file
22
vzic/zoneinfo/Africa/Addis_Ababa.ics
Normal file
|
@ -0,0 +1,22 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Addis_Ababa
|
||||
X-LIC-LOCATION:Africa/Addis_Ababa
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+023448
|
||||
TZOFFSETTO:+023520
|
||||
TZNAME:ADMT
|
||||
DTSTART:18700101T000000
|
||||
RDATE:18700101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+023520
|
||||
TZOFFSETTO:+0300
|
||||
TZNAME:EAT
|
||||
DTSTART:19360505T000000
|
||||
RDATE:19360505T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
90
vzic/zoneinfo/Africa/Algiers.ics
Normal file
90
vzic/zoneinfo/Africa/Algiers.ics
Normal file
|
@ -0,0 +1,90 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Algiers
|
||||
X-LIC-LOCATION:Africa/Algiers
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+001212
|
||||
TZOFFSETTO:+000921
|
||||
TZNAME:PMT
|
||||
DTSTART:18910315T000100
|
||||
RDATE:18910315T000100
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+000921
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:WET
|
||||
DTSTART:19110311T000000
|
||||
RDATE:19110311T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:+0000
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:WEST
|
||||
DTSTART:19160614T230000
|
||||
RDATE:19160614T230000
|
||||
RDATE:19170324T230000
|
||||
RDATE:19180309T230000
|
||||
RDATE:19190301T230000
|
||||
RDATE:19200214T230000
|
||||
RDATE:19210314T230000
|
||||
RDATE:19390911T230000
|
||||
RDATE:19710425T230000
|
||||
RDATE:19770506T000000
|
||||
RDATE:19800425T000000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0100
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:WET
|
||||
DTSTART:19161002T000000
|
||||
RDATE:19161002T000000
|
||||
RDATE:19171008T000000
|
||||
RDATE:19181007T000000
|
||||
RDATE:19191006T000000
|
||||
RDATE:19201024T000000
|
||||
RDATE:19210622T000000
|
||||
RDATE:19391119T010000
|
||||
RDATE:19461007T000000
|
||||
RDATE:19630414T000000
|
||||
RDATE:19710927T000000
|
||||
RDATE:19791026T000000
|
||||
RDATE:19801031T020000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0000
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:CET
|
||||
DTSTART:19400225T020000
|
||||
RDATE:19400225T020000
|
||||
RDATE:19560129T000000
|
||||
RDATE:19810501T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:+0100
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:CEST
|
||||
DTSTART:19440403T020000
|
||||
RDATE:19440403T020000
|
||||
RDATE:19450402T020000
|
||||
RDATE:19780324T010000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0200
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:CET
|
||||
DTSTART:19441008T020000
|
||||
RDATE:19441008T020000
|
||||
RDATE:19450916T010000
|
||||
RDATE:19780922T030000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0100
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:CET
|
||||
DTSTART:19771021T000000
|
||||
RDATE:19771021T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
29
vzic/zoneinfo/Africa/Asmara.ics
Normal file
29
vzic/zoneinfo/Africa/Asmara.ics
Normal file
|
@ -0,0 +1,29 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Asmara
|
||||
X-LIC-LOCATION:Africa/Asmara
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+023532
|
||||
TZOFFSETTO:+023532
|
||||
TZNAME:AMT
|
||||
DTSTART:18700101T000000
|
||||
RDATE:18700101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+023532
|
||||
TZOFFSETTO:+023520
|
||||
TZNAME:ADMT
|
||||
DTSTART:18900101T000000
|
||||
RDATE:18900101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+023520
|
||||
TZOFFSETTO:+0300
|
||||
TZNAME:EAT
|
||||
DTSTART:19360505T000000
|
||||
RDATE:19360505T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
29
vzic/zoneinfo/Africa/Bamako.ics
Normal file
29
vzic/zoneinfo/Africa/Bamako.ics
Normal file
|
@ -0,0 +1,29 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Bamako
|
||||
X-LIC-LOCATION:Africa/Bamako
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0032
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:GMT
|
||||
DTSTART:19120101T000000
|
||||
RDATE:19120101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0000
|
||||
TZOFFSETTO:-0100
|
||||
TZNAME:WAT
|
||||
DTSTART:19340226T000000
|
||||
RDATE:19340226T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0100
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:GMT
|
||||
DTSTART:19600620T000000
|
||||
RDATE:19600620T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
15
vzic/zoneinfo/Africa/Bangui.ics
Normal file
15
vzic/zoneinfo/Africa/Bangui.ics
Normal file
|
@ -0,0 +1,15 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Bangui
|
||||
X-LIC-LOCATION:Africa/Bangui
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+011420
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:WAT
|
||||
DTSTART:19120101T000000
|
||||
RDATE:19120101T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
29
vzic/zoneinfo/Africa/Banjul.ics
Normal file
29
vzic/zoneinfo/Africa/Banjul.ics
Normal file
|
@ -0,0 +1,29 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Banjul
|
||||
X-LIC-LOCATION:Africa/Banjul
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-010636
|
||||
TZOFFSETTO:-010636
|
||||
TZNAME:BMT
|
||||
DTSTART:19120101T000000
|
||||
RDATE:19120101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-010636
|
||||
TZOFFSETTO:-0100
|
||||
TZNAME:WAT
|
||||
DTSTART:19350101T000000
|
||||
RDATE:19350101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0100
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:GMT
|
||||
DTSTART:19640101T000000
|
||||
RDATE:19640101T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
22
vzic/zoneinfo/Africa/Bissau.ics
Normal file
22
vzic/zoneinfo/Africa/Bissau.ics
Normal file
|
@ -0,0 +1,22 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Bissau
|
||||
X-LIC-LOCATION:Africa/Bissau
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-010220
|
||||
TZOFFSETTO:-0100
|
||||
TZNAME:WAT
|
||||
DTSTART:19110526T000000
|
||||
RDATE:19110526T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0100
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:GMT
|
||||
DTSTART:19750101T000000
|
||||
RDATE:19750101T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
15
vzic/zoneinfo/Africa/Blantyre.ics
Normal file
15
vzic/zoneinfo/Africa/Blantyre.ics
Normal file
|
@ -0,0 +1,15 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Blantyre
|
||||
X-LIC-LOCATION:Africa/Blantyre
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0220
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:CAT
|
||||
DTSTART:19030301T000000
|
||||
RDATE:19030301T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
15
vzic/zoneinfo/Africa/Brazzaville.ics
Normal file
15
vzic/zoneinfo/Africa/Brazzaville.ics
Normal file
|
@ -0,0 +1,15 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Brazzaville
|
||||
X-LIC-LOCATION:Africa/Brazzaville
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+010108
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:WAT
|
||||
DTSTART:19120101T000000
|
||||
RDATE:19120101T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
15
vzic/zoneinfo/Africa/Bujumbura.ics
Normal file
15
vzic/zoneinfo/Africa/Bujumbura.ics
Normal file
|
@ -0,0 +1,15 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Bujumbura
|
||||
X-LIC-LOCATION:Africa/Bujumbura
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+015728
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:CAT
|
||||
DTSTART:18900101T000000
|
||||
RDATE:18900101T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
149
vzic/zoneinfo/Africa/Cairo.ics
Normal file
149
vzic/zoneinfo/Africa/Cairo.ics
Normal file
|
@ -0,0 +1,149 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Cairo
|
||||
X-LIC-LOCATION:Africa/Cairo
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0205
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:EET
|
||||
DTSTART:19001001T000000
|
||||
RDATE:19001001T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:+0200
|
||||
TZOFFSETTO:+0300
|
||||
TZNAME:EEST
|
||||
DTSTART:19400715T000000
|
||||
RDATE:19400715T000000
|
||||
RDATE:19410415T000000
|
||||
RDATE:19420401T000000
|
||||
RDATE:19430401T000000
|
||||
RDATE:19440401T000000
|
||||
RDATE:19450416T000000
|
||||
RDATE:19570510T000000
|
||||
RDATE:19580501T000000
|
||||
RDATE:19590501T010000
|
||||
RDATE:19600501T010000
|
||||
RDATE:19610501T010000
|
||||
RDATE:19620501T010000
|
||||
RDATE:19630501T010000
|
||||
RDATE:19640501T010000
|
||||
RDATE:19650501T010000
|
||||
RDATE:19660501T010000
|
||||
RDATE:19670501T010000
|
||||
RDATE:19680501T010000
|
||||
RDATE:19690501T010000
|
||||
RDATE:19700501T010000
|
||||
RDATE:19710501T010000
|
||||
RDATE:19720501T010000
|
||||
RDATE:19730501T010000
|
||||
RDATE:19740501T010000
|
||||
RDATE:19750501T010000
|
||||
RDATE:19760501T010000
|
||||
RDATE:19770501T010000
|
||||
RDATE:19780501T010000
|
||||
RDATE:19790501T010000
|
||||
RDATE:19800501T010000
|
||||
RDATE:19810501T010000
|
||||
RDATE:19820725T010000
|
||||
RDATE:19830712T010000
|
||||
RDATE:19840501T010000
|
||||
RDATE:19850501T010000
|
||||
RDATE:19860501T010000
|
||||
RDATE:19870501T010000
|
||||
RDATE:19880501T010000
|
||||
RDATE:19890506T010000
|
||||
RDATE:19900501T010000
|
||||
RDATE:19910501T010000
|
||||
RDATE:19920501T010000
|
||||
RDATE:19930501T010000
|
||||
RDATE:19940501T010000
|
||||
RDATE:19950428T000000
|
||||
RDATE:19960426T000000
|
||||
RDATE:19970425T000000
|
||||
RDATE:19980424T000000
|
||||
RDATE:19990430T000000
|
||||
RDATE:20000428T000000
|
||||
RDATE:20010427T000000
|
||||
RDATE:20020426T000000
|
||||
RDATE:20030425T000000
|
||||
RDATE:20040430T000000
|
||||
RDATE:20050429T000000
|
||||
RDATE:20060428T000000
|
||||
RDATE:20070427T000000
|
||||
RDATE:20080425T000000
|
||||
RDATE:20090424T000000
|
||||
RDATE:20100430T000000
|
||||
RDATE:20100910T000000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0300
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:EET
|
||||
DTSTART:19401001T000000
|
||||
RDATE:19401001T000000
|
||||
RDATE:19410916T000000
|
||||
RDATE:19421027T000000
|
||||
RDATE:19431101T000000
|
||||
RDATE:19441101T000000
|
||||
RDATE:19451101T000000
|
||||
RDATE:19571001T000000
|
||||
RDATE:19581001T000000
|
||||
RDATE:19590930T030000
|
||||
RDATE:19600930T030000
|
||||
RDATE:19610930T030000
|
||||
RDATE:19620930T030000
|
||||
RDATE:19630930T030000
|
||||
RDATE:19640930T030000
|
||||
RDATE:19650930T030000
|
||||
RDATE:19661001T030000
|
||||
RDATE:19671001T030000
|
||||
RDATE:19681001T030000
|
||||
RDATE:19691001T030000
|
||||
RDATE:19701001T030000
|
||||
RDATE:19711001T030000
|
||||
RDATE:19721001T030000
|
||||
RDATE:19731001T030000
|
||||
RDATE:19741001T030000
|
||||
RDATE:19751001T030000
|
||||
RDATE:19761001T030000
|
||||
RDATE:19771001T030000
|
||||
RDATE:19781001T030000
|
||||
RDATE:19791001T030000
|
||||
RDATE:19801001T030000
|
||||
RDATE:19811001T030000
|
||||
RDATE:19821001T030000
|
||||
RDATE:19831001T030000
|
||||
RDATE:19841001T030000
|
||||
RDATE:19851001T030000
|
||||
RDATE:19861001T030000
|
||||
RDATE:19871001T030000
|
||||
RDATE:19881001T030000
|
||||
RDATE:19891001T030000
|
||||
RDATE:19901001T030000
|
||||
RDATE:19911001T030000
|
||||
RDATE:19921001T030000
|
||||
RDATE:19931001T030000
|
||||
RDATE:19941001T030000
|
||||
RDATE:19950929T000000
|
||||
RDATE:19960927T000000
|
||||
RDATE:19970926T000000
|
||||
RDATE:19980925T000000
|
||||
RDATE:19991001T000000
|
||||
RDATE:20000929T000000
|
||||
RDATE:20010928T000000
|
||||
RDATE:20020927T000000
|
||||
RDATE:20030926T000000
|
||||
RDATE:20041001T000000
|
||||
RDATE:20050930T000000
|
||||
RDATE:20060922T000000
|
||||
RDATE:20070907T000000
|
||||
RDATE:20080829T000000
|
||||
RDATE:20090821T000000
|
||||
RDATE:20100811T000000
|
||||
RDATE:20101001T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
59
vzic/zoneinfo/Africa/Casablanca.ics
Normal file
59
vzic/zoneinfo/Africa/Casablanca.ics
Normal file
|
@ -0,0 +1,59 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Casablanca
|
||||
X-LIC-LOCATION:Africa/Casablanca
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-003020
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:WET
|
||||
DTSTART:19131026T000000
|
||||
RDATE:19131026T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:+0000
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:WEST
|
||||
DTSTART:19390912T000000
|
||||
RDATE:19390912T000000
|
||||
RDATE:19400225T000000
|
||||
RDATE:19500611T000000
|
||||
RDATE:19670603T120000
|
||||
RDATE:19740624T000000
|
||||
RDATE:19760501T000000
|
||||
RDATE:19770501T000000
|
||||
RDATE:19780601T000000
|
||||
RDATE:20080601T000000
|
||||
RDATE:20090601T000000
|
||||
RDATE:20100502T000000
|
||||
RDATE:20110403T000000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0100
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:WET
|
||||
DTSTART:19391119T000000
|
||||
RDATE:19391119T000000
|
||||
RDATE:19451118T000000
|
||||
RDATE:19501029T000000
|
||||
RDATE:19671001T000000
|
||||
RDATE:19740901T000000
|
||||
RDATE:19760801T000000
|
||||
RDATE:19770928T000000
|
||||
RDATE:19780804T000000
|
||||
RDATE:19860101T000000
|
||||
RDATE:20080901T000000
|
||||
RDATE:20090821T000000
|
||||
RDATE:20100808T000000
|
||||
RDATE:20110731T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0000
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:CET
|
||||
DTSTART:19840316T000000
|
||||
RDATE:19840316T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
99
vzic/zoneinfo/Africa/Ceuta.ics
Normal file
99
vzic/zoneinfo/Africa/Ceuta.ics
Normal file
|
@ -0,0 +1,99 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Ceuta
|
||||
X-LIC-LOCATION:Africa/Ceuta
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:+0100
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:CEST
|
||||
DTSTART:19860330T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0200
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:CET
|
||||
DTSTART:19961027T030000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-002116
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:WET
|
||||
DTSTART:19010101T000000
|
||||
RDATE:19010101T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:+0000
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:WEST
|
||||
DTSTART:19180506T230000
|
||||
RDATE:19180506T230000
|
||||
RDATE:19240416T230000
|
||||
RDATE:19260417T230000
|
||||
RDATE:19270409T230000
|
||||
RDATE:19280414T230000
|
||||
RDATE:19670603T120000
|
||||
RDATE:19740624T000000
|
||||
RDATE:19760501T000000
|
||||
RDATE:19770501T000000
|
||||
RDATE:19780601T000000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0100
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:WET
|
||||
DTSTART:19181007T230000
|
||||
RDATE:19181007T230000
|
||||
RDATE:19241005T000000
|
||||
RDATE:19261003T000000
|
||||
RDATE:19271002T000000
|
||||
RDATE:19281007T000000
|
||||
RDATE:19671001T000000
|
||||
RDATE:19740901T000000
|
||||
RDATE:19760801T000000
|
||||
RDATE:19770928T000000
|
||||
RDATE:19780804T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0000
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:WET
|
||||
DTSTART:19240101T000000
|
||||
RDATE:19240101T000000
|
||||
RDATE:19290101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0000
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:CET
|
||||
DTSTART:19840316T000000
|
||||
RDATE:19840316T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0100
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:CET
|
||||
DTSTART:19860101T000000
|
||||
RDATE:19860101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0200
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:CET
|
||||
DTSTART:19860928T030000
|
||||
RDATE:19860928T030000
|
||||
RDATE:19870927T030000
|
||||
RDATE:19880925T030000
|
||||
RDATE:19890924T030000
|
||||
RDATE:19900930T030000
|
||||
RDATE:19910929T030000
|
||||
RDATE:19920927T030000
|
||||
RDATE:19930926T030000
|
||||
RDATE:19940925T030000
|
||||
RDATE:19950924T030000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
29
vzic/zoneinfo/Africa/Conakry.ics
Normal file
29
vzic/zoneinfo/Africa/Conakry.ics
Normal file
|
@ -0,0 +1,29 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Conakry
|
||||
X-LIC-LOCATION:Africa/Conakry
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-005452
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:GMT
|
||||
DTSTART:19120101T000000
|
||||
RDATE:19120101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0000
|
||||
TZOFFSETTO:-0100
|
||||
TZNAME:WAT
|
||||
DTSTART:19340226T000000
|
||||
RDATE:19340226T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0100
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:GMT
|
||||
DTSTART:19600101T000000
|
||||
RDATE:19600101T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
22
vzic/zoneinfo/Africa/Dakar.ics
Normal file
22
vzic/zoneinfo/Africa/Dakar.ics
Normal file
|
@ -0,0 +1,22 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Dakar
|
||||
X-LIC-LOCATION:Africa/Dakar
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-010944
|
||||
TZOFFSETTO:-0100
|
||||
TZNAME:WAT
|
||||
DTSTART:19120101T000000
|
||||
RDATE:19120101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0100
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:GMT
|
||||
DTSTART:19410601T000000
|
||||
RDATE:19410601T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
29
vzic/zoneinfo/Africa/Dar_es_Salaam.ics
Normal file
29
vzic/zoneinfo/Africa/Dar_es_Salaam.ics
Normal file
|
@ -0,0 +1,29 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Dar_es_Salaam
|
||||
X-LIC-LOCATION:Africa/Dar_es_Salaam
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+023708
|
||||
TZOFFSETTO:+0300
|
||||
TZNAME:EAT
|
||||
DTSTART:19310101T000000
|
||||
RDATE:19310101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0300
|
||||
TZOFFSETTO:+0245
|
||||
TZNAME:BEAUT
|
||||
DTSTART:19480101T000000
|
||||
RDATE:19480101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0245
|
||||
TZOFFSETTO:+0300
|
||||
TZNAME:EAT
|
||||
DTSTART:19610101T000000
|
||||
RDATE:19610101T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
15
vzic/zoneinfo/Africa/Djibouti.ics
Normal file
15
vzic/zoneinfo/Africa/Djibouti.ics
Normal file
|
@ -0,0 +1,15 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Djibouti
|
||||
X-LIC-LOCATION:Africa/Djibouti
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+025236
|
||||
TZOFFSETTO:+0300
|
||||
TZNAME:EAT
|
||||
DTSTART:19110701T000000
|
||||
RDATE:19110701T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
15
vzic/zoneinfo/Africa/Douala.ics
Normal file
15
vzic/zoneinfo/Africa/Douala.ics
Normal file
|
@ -0,0 +1,15 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Douala
|
||||
X-LIC-LOCATION:Africa/Douala
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+003848
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:WAT
|
||||
DTSTART:19120101T000000
|
||||
RDATE:19120101T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
22
vzic/zoneinfo/Africa/El_Aaiun.ics
Normal file
22
vzic/zoneinfo/Africa/El_Aaiun.ics
Normal file
|
@ -0,0 +1,22 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/El_Aaiun
|
||||
X-LIC-LOCATION:Africa/El_Aaiun
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-005248
|
||||
TZOFFSETTO:-0100
|
||||
TZNAME:WAT
|
||||
DTSTART:19340101T000000
|
||||
RDATE:19340101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0100
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:WET
|
||||
DTSTART:19760414T000000
|
||||
RDATE:19760414T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
81
vzic/zoneinfo/Africa/Freetown.ics
Normal file
81
vzic/zoneinfo/Africa/Freetown.ics
Normal file
|
@ -0,0 +1,81 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Freetown
|
||||
X-LIC-LOCATION:Africa/Freetown
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0053
|
||||
TZOFFSETTO:-0053
|
||||
TZNAME:FMT
|
||||
DTSTART:18820101T000000
|
||||
RDATE:18820101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0053
|
||||
TZOFFSETTO:-0100
|
||||
TZNAME:WAT
|
||||
DTSTART:19130601T000000
|
||||
RDATE:19130601T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0100
|
||||
TZOFFSETTO:-0020
|
||||
TZNAME:SLST
|
||||
DTSTART:19350601T000000
|
||||
RDATE:19350601T000000
|
||||
RDATE:19360601T000000
|
||||
RDATE:19370601T000000
|
||||
RDATE:19380601T000000
|
||||
RDATE:19390601T000000
|
||||
RDATE:19400601T000000
|
||||
RDATE:19410601T000000
|
||||
RDATE:19420601T000000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0020
|
||||
TZOFFSETTO:-0100
|
||||
TZNAME:WAT
|
||||
DTSTART:19351001T000000
|
||||
RDATE:19351001T000000
|
||||
RDATE:19361001T000000
|
||||
RDATE:19371001T000000
|
||||
RDATE:19381001T000000
|
||||
RDATE:19391001T000000
|
||||
RDATE:19401001T000000
|
||||
RDATE:19411001T000000
|
||||
RDATE:19421001T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0100
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:GMT
|
||||
DTSTART:19570101T000000
|
||||
RDATE:19570101T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:+0000
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:SLST
|
||||
DTSTART:19570601T000000
|
||||
RDATE:19570601T000000
|
||||
RDATE:19580601T000000
|
||||
RDATE:19590601T000000
|
||||
RDATE:19600601T000000
|
||||
RDATE:19610601T000000
|
||||
RDATE:19620601T000000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0100
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:GMT
|
||||
DTSTART:19570901T000000
|
||||
RDATE:19570901T000000
|
||||
RDATE:19580901T000000
|
||||
RDATE:19590901T000000
|
||||
RDATE:19600901T000000
|
||||
RDATE:19610901T000000
|
||||
RDATE:19620901T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
29
vzic/zoneinfo/Africa/Gaborone.ics
Normal file
29
vzic/zoneinfo/Africa/Gaborone.ics
Normal file
|
@ -0,0 +1,29 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Gaborone
|
||||
X-LIC-LOCATION:Africa/Gaborone
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+014340
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:CAT
|
||||
DTSTART:18850101T000000
|
||||
RDATE:18850101T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:+0200
|
||||
TZOFFSETTO:+0300
|
||||
TZNAME:CAST
|
||||
DTSTART:19430919T020000
|
||||
RDATE:19430919T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0300
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:CAT
|
||||
DTSTART:19440319T020000
|
||||
RDATE:19440319T020000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
15
vzic/zoneinfo/Africa/Harare.ics
Normal file
15
vzic/zoneinfo/Africa/Harare.ics
Normal file
|
@ -0,0 +1,15 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Harare
|
||||
X-LIC-LOCATION:Africa/Harare
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+020412
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:CAT
|
||||
DTSTART:19030301T000000
|
||||
RDATE:19030301T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
38
vzic/zoneinfo/Africa/Johannesburg.ics
Normal file
38
vzic/zoneinfo/Africa/Johannesburg.ics
Normal file
|
@ -0,0 +1,38 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Johannesburg
|
||||
X-LIC-LOCATION:Africa/Johannesburg
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0152
|
||||
TZOFFSETTO:+0130
|
||||
TZNAME:SAST
|
||||
DTSTART:18920208T000000
|
||||
RDATE:18920208T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0130
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:SAST
|
||||
DTSTART:19030301T000000
|
||||
RDATE:19030301T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:+0200
|
||||
TZOFFSETTO:+0300
|
||||
TZNAME:SAST
|
||||
DTSTART:19420920T020000
|
||||
RDATE:19420920T020000
|
||||
RDATE:19430919T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0300
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:SAST
|
||||
DTSTART:19430321T020000
|
||||
RDATE:19430321T020000
|
||||
RDATE:19440319T020000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
66
vzic/zoneinfo/Africa/Juba.ics
Normal file
66
vzic/zoneinfo/Africa/Juba.ics
Normal file
|
@ -0,0 +1,66 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Juba
|
||||
X-LIC-LOCATION:Africa/Juba
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+020624
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:CAT
|
||||
DTSTART:19310101T000000
|
||||
RDATE:19310101T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:+0200
|
||||
TZOFFSETTO:+0300
|
||||
TZNAME:CAST
|
||||
DTSTART:19700501T000000
|
||||
RDATE:19700501T000000
|
||||
RDATE:19710430T000000
|
||||
RDATE:19720430T000000
|
||||
RDATE:19730429T000000
|
||||
RDATE:19740428T000000
|
||||
RDATE:19750427T000000
|
||||
RDATE:19760425T000000
|
||||
RDATE:19770424T000000
|
||||
RDATE:19780430T000000
|
||||
RDATE:19790429T000000
|
||||
RDATE:19800427T000000
|
||||
RDATE:19810426T000000
|
||||
RDATE:19820425T000000
|
||||
RDATE:19830424T000000
|
||||
RDATE:19840429T000000
|
||||
RDATE:19850428T000000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0300
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:CAT
|
||||
DTSTART:19701015T000000
|
||||
RDATE:19701015T000000
|
||||
RDATE:19711015T000000
|
||||
RDATE:19721015T000000
|
||||
RDATE:19731015T000000
|
||||
RDATE:19741015T000000
|
||||
RDATE:19751015T000000
|
||||
RDATE:19761015T000000
|
||||
RDATE:19771015T000000
|
||||
RDATE:19781015T000000
|
||||
RDATE:19791015T000000
|
||||
RDATE:19801015T000000
|
||||
RDATE:19811015T000000
|
||||
RDATE:19821015T000000
|
||||
RDATE:19831015T000000
|
||||
RDATE:19841015T000000
|
||||
RDATE:19851015T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0200
|
||||
TZOFFSETTO:+0300
|
||||
TZNAME:EAT
|
||||
DTSTART:20000115T120000
|
||||
RDATE:20000115T120000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
36
vzic/zoneinfo/Africa/Kampala.ics
Normal file
36
vzic/zoneinfo/Africa/Kampala.ics
Normal file
|
@ -0,0 +1,36 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Kampala
|
||||
X-LIC-LOCATION:Africa/Kampala
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+020940
|
||||
TZOFFSETTO:+0300
|
||||
TZNAME:EAT
|
||||
DTSTART:19280701T000000
|
||||
RDATE:19280701T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0300
|
||||
TZOFFSETTO:+0230
|
||||
TZNAME:BEAT
|
||||
DTSTART:19300101T000000
|
||||
RDATE:19300101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0230
|
||||
TZOFFSETTO:+0245
|
||||
TZNAME:BEAUT
|
||||
DTSTART:19480101T000000
|
||||
RDATE:19480101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0245
|
||||
TZOFFSETTO:+0300
|
||||
TZNAME:EAT
|
||||
DTSTART:19570101T000000
|
||||
RDATE:19570101T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
66
vzic/zoneinfo/Africa/Khartoum.ics
Normal file
66
vzic/zoneinfo/Africa/Khartoum.ics
Normal file
|
@ -0,0 +1,66 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Khartoum
|
||||
X-LIC-LOCATION:Africa/Khartoum
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+021008
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:CAT
|
||||
DTSTART:19310101T000000
|
||||
RDATE:19310101T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:+0200
|
||||
TZOFFSETTO:+0300
|
||||
TZNAME:CAST
|
||||
DTSTART:19700501T000000
|
||||
RDATE:19700501T000000
|
||||
RDATE:19710430T000000
|
||||
RDATE:19720430T000000
|
||||
RDATE:19730429T000000
|
||||
RDATE:19740428T000000
|
||||
RDATE:19750427T000000
|
||||
RDATE:19760425T000000
|
||||
RDATE:19770424T000000
|
||||
RDATE:19780430T000000
|
||||
RDATE:19790429T000000
|
||||
RDATE:19800427T000000
|
||||
RDATE:19810426T000000
|
||||
RDATE:19820425T000000
|
||||
RDATE:19830424T000000
|
||||
RDATE:19840429T000000
|
||||
RDATE:19850428T000000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0300
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:CAT
|
||||
DTSTART:19701015T000000
|
||||
RDATE:19701015T000000
|
||||
RDATE:19711015T000000
|
||||
RDATE:19721015T000000
|
||||
RDATE:19731015T000000
|
||||
RDATE:19741015T000000
|
||||
RDATE:19751015T000000
|
||||
RDATE:19761015T000000
|
||||
RDATE:19771015T000000
|
||||
RDATE:19781015T000000
|
||||
RDATE:19791015T000000
|
||||
RDATE:19801015T000000
|
||||
RDATE:19811015T000000
|
||||
RDATE:19821015T000000
|
||||
RDATE:19831015T000000
|
||||
RDATE:19841015T000000
|
||||
RDATE:19851015T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0200
|
||||
TZOFFSETTO:+0300
|
||||
TZNAME:EAT
|
||||
DTSTART:20000115T120000
|
||||
RDATE:20000115T120000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
15
vzic/zoneinfo/Africa/Kigali.ics
Normal file
15
vzic/zoneinfo/Africa/Kigali.ics
Normal file
|
@ -0,0 +1,15 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Kigali
|
||||
X-LIC-LOCATION:Africa/Kigali
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+020016
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:CAT
|
||||
DTSTART:19350601T000000
|
||||
RDATE:19350601T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
15
vzic/zoneinfo/Africa/Kinshasa.ics
Normal file
15
vzic/zoneinfo/Africa/Kinshasa.ics
Normal file
|
@ -0,0 +1,15 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Kinshasa
|
||||
X-LIC-LOCATION:Africa/Kinshasa
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+010112
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:WAT
|
||||
DTSTART:18971109T000000
|
||||
RDATE:18971109T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
15
vzic/zoneinfo/Africa/Lagos.ics
Normal file
15
vzic/zoneinfo/Africa/Lagos.ics
Normal file
|
@ -0,0 +1,15 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Lagos
|
||||
X-LIC-LOCATION:Africa/Lagos
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+001336
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:WAT
|
||||
DTSTART:19190901T000000
|
||||
RDATE:19190901T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
15
vzic/zoneinfo/Africa/Libreville.ics
Normal file
15
vzic/zoneinfo/Africa/Libreville.ics
Normal file
|
@ -0,0 +1,15 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Libreville
|
||||
X-LIC-LOCATION:Africa/Libreville
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+003748
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:WAT
|
||||
DTSTART:19120101T000000
|
||||
RDATE:19120101T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
15
vzic/zoneinfo/Africa/Lome.ics
Normal file
15
vzic/zoneinfo/Africa/Lome.ics
Normal file
|
@ -0,0 +1,15 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Lome
|
||||
X-LIC-LOCATION:Africa/Lome
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+000452
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:GMT
|
||||
DTSTART:18930101T000000
|
||||
RDATE:18930101T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
22
vzic/zoneinfo/Africa/Luanda.ics
Normal file
22
vzic/zoneinfo/Africa/Luanda.ics
Normal file
|
@ -0,0 +1,22 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Luanda
|
||||
X-LIC-LOCATION:Africa/Luanda
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+005256
|
||||
TZOFFSETTO:+005204
|
||||
TZNAME:AOT
|
||||
DTSTART:18920101T000000
|
||||
RDATE:18920101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+005204
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:WAT
|
||||
DTSTART:19110526T000000
|
||||
RDATE:19110526T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
15
vzic/zoneinfo/Africa/Lubumbashi.ics
Normal file
15
vzic/zoneinfo/Africa/Lubumbashi.ics
Normal file
|
@ -0,0 +1,15 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Lubumbashi
|
||||
X-LIC-LOCATION:Africa/Lubumbashi
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+014952
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:CAT
|
||||
DTSTART:18971109T000000
|
||||
RDATE:18971109T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
15
vzic/zoneinfo/Africa/Lusaka.ics
Normal file
15
vzic/zoneinfo/Africa/Lusaka.ics
Normal file
|
@ -0,0 +1,15 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Lusaka
|
||||
X-LIC-LOCATION:Africa/Lusaka
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+015308
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:CAT
|
||||
DTSTART:19030301T000000
|
||||
RDATE:19030301T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
22
vzic/zoneinfo/Africa/Malabo.ics
Normal file
22
vzic/zoneinfo/Africa/Malabo.ics
Normal file
|
@ -0,0 +1,22 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Malabo
|
||||
X-LIC-LOCATION:Africa/Malabo
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+003508
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:GMT
|
||||
DTSTART:19120101T000000
|
||||
RDATE:19120101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0000
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:WAT
|
||||
DTSTART:19631215T000000
|
||||
RDATE:19631215T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
15
vzic/zoneinfo/Africa/Maputo.ics
Normal file
15
vzic/zoneinfo/Africa/Maputo.ics
Normal file
|
@ -0,0 +1,15 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Maputo
|
||||
X-LIC-LOCATION:Africa/Maputo
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+021020
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:CAT
|
||||
DTSTART:19030301T000000
|
||||
RDATE:19030301T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
29
vzic/zoneinfo/Africa/Maseru.ics
Normal file
29
vzic/zoneinfo/Africa/Maseru.ics
Normal file
|
@ -0,0 +1,29 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Maseru
|
||||
X-LIC-LOCATION:Africa/Maseru
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0150
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:SAST
|
||||
DTSTART:19030301T000000
|
||||
RDATE:19030301T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:+0200
|
||||
TZOFFSETTO:+0300
|
||||
TZNAME:SAST
|
||||
DTSTART:19430919T020000
|
||||
RDATE:19430919T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0300
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:SAST
|
||||
DTSTART:19440319T020000
|
||||
RDATE:19440319T020000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
15
vzic/zoneinfo/Africa/Mbabane.ics
Normal file
15
vzic/zoneinfo/Africa/Mbabane.ics
Normal file
|
@ -0,0 +1,15 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Mbabane
|
||||
X-LIC-LOCATION:Africa/Mbabane
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+020424
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:SAST
|
||||
DTSTART:19030301T000000
|
||||
RDATE:19030301T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
29
vzic/zoneinfo/Africa/Mogadishu.ics
Normal file
29
vzic/zoneinfo/Africa/Mogadishu.ics
Normal file
|
@ -0,0 +1,29 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Mogadishu
|
||||
X-LIC-LOCATION:Africa/Mogadishu
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+030128
|
||||
TZOFFSETTO:+0300
|
||||
TZNAME:EAT
|
||||
DTSTART:18931101T000000
|
||||
RDATE:18931101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0300
|
||||
TZOFFSETTO:+0230
|
||||
TZNAME:BEAT
|
||||
DTSTART:19310101T000000
|
||||
RDATE:19310101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0230
|
||||
TZOFFSETTO:+0300
|
||||
TZNAME:EAT
|
||||
DTSTART:19570101T000000
|
||||
RDATE:19570101T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
29
vzic/zoneinfo/Africa/Monrovia.ics
Normal file
29
vzic/zoneinfo/Africa/Monrovia.ics
Normal file
|
@ -0,0 +1,29 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Monrovia
|
||||
X-LIC-LOCATION:Africa/Monrovia
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-004308
|
||||
TZOFFSETTO:-004308
|
||||
TZNAME:MMT
|
||||
DTSTART:18820101T000000
|
||||
RDATE:18820101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-004308
|
||||
TZOFFSETTO:-004430
|
||||
TZNAME:LRT
|
||||
DTSTART:19190301T000000
|
||||
RDATE:19190301T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-004430
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:GMT
|
||||
DTSTART:19720501T000000
|
||||
RDATE:19720501T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
36
vzic/zoneinfo/Africa/Nairobi.ics
Normal file
36
vzic/zoneinfo/Africa/Nairobi.ics
Normal file
|
@ -0,0 +1,36 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Nairobi
|
||||
X-LIC-LOCATION:Africa/Nairobi
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+022716
|
||||
TZOFFSETTO:+0300
|
||||
TZNAME:EAT
|
||||
DTSTART:19280701T000000
|
||||
RDATE:19280701T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0300
|
||||
TZOFFSETTO:+0230
|
||||
TZNAME:BEAT
|
||||
DTSTART:19300101T000000
|
||||
RDATE:19300101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0230
|
||||
TZOFFSETTO:+0245
|
||||
TZNAME:BEAUT
|
||||
DTSTART:19400101T000000
|
||||
RDATE:19400101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0245
|
||||
TZOFFSETTO:+0300
|
||||
TZNAME:EAT
|
||||
DTSTART:19600101T000000
|
||||
RDATE:19600101T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
29
vzic/zoneinfo/Africa/Ndjamena.ics
Normal file
29
vzic/zoneinfo/Africa/Ndjamena.ics
Normal file
|
@ -0,0 +1,29 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Ndjamena
|
||||
X-LIC-LOCATION:Africa/Ndjamena
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+010012
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:WAT
|
||||
DTSTART:19120101T000000
|
||||
RDATE:19120101T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:+0100
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:WAST
|
||||
DTSTART:19791014T000000
|
||||
RDATE:19791014T000000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0200
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:WAT
|
||||
DTSTART:19800308T000000
|
||||
RDATE:19800308T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
29
vzic/zoneinfo/Africa/Niamey.ics
Normal file
29
vzic/zoneinfo/Africa/Niamey.ics
Normal file
|
@ -0,0 +1,29 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Niamey
|
||||
X-LIC-LOCATION:Africa/Niamey
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+000828
|
||||
TZOFFSETTO:-0100
|
||||
TZNAME:WAT
|
||||
DTSTART:19120101T000000
|
||||
RDATE:19120101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0100
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:GMT
|
||||
DTSTART:19340226T000000
|
||||
RDATE:19340226T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0000
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:WAT
|
||||
DTSTART:19600101T000000
|
||||
RDATE:19600101T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
29
vzic/zoneinfo/Africa/Nouakchott.ics
Normal file
29
vzic/zoneinfo/Africa/Nouakchott.ics
Normal file
|
@ -0,0 +1,29 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Nouakchott
|
||||
X-LIC-LOCATION:Africa/Nouakchott
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-010348
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:GMT
|
||||
DTSTART:19120101T000000
|
||||
RDATE:19120101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0000
|
||||
TZOFFSETTO:-0100
|
||||
TZNAME:WAT
|
||||
DTSTART:19340226T000000
|
||||
RDATE:19340226T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0100
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:GMT
|
||||
DTSTART:19601128T000000
|
||||
RDATE:19601128T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
15
vzic/zoneinfo/Africa/Ouagadougou.ics
Normal file
15
vzic/zoneinfo/Africa/Ouagadougou.ics
Normal file
|
@ -0,0 +1,15 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Ouagadougou
|
||||
X-LIC-LOCATION:Africa/Ouagadougou
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-000604
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:GMT
|
||||
DTSTART:19120101T000000
|
||||
RDATE:19120101T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
22
vzic/zoneinfo/Africa/Porto-Novo.ics
Normal file
22
vzic/zoneinfo/Africa/Porto-Novo.ics
Normal file
|
@ -0,0 +1,22 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Porto-Novo
|
||||
X-LIC-LOCATION:Africa/Porto-Novo
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+001028
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:GMT
|
||||
DTSTART:19120101T000000
|
||||
RDATE:19120101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0000
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:WAT
|
||||
DTSTART:19340226T000000
|
||||
RDATE:19340226T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
22
vzic/zoneinfo/Africa/Sao_Tome.ics
Normal file
22
vzic/zoneinfo/Africa/Sao_Tome.ics
Normal file
|
@ -0,0 +1,22 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Sao_Tome
|
||||
X-LIC-LOCATION:Africa/Sao_Tome
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+002656
|
||||
TZOFFSETTO:-003632
|
||||
TZNAME:LMT
|
||||
DTSTART:18840101T000000
|
||||
RDATE:18840101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-003632
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:GMT
|
||||
DTSTART:19120101T000000
|
||||
RDATE:19120101T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
67
vzic/zoneinfo/Africa/Tripoli.ics
Normal file
67
vzic/zoneinfo/Africa/Tripoli.ics
Normal file
|
@ -0,0 +1,67 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Tripoli
|
||||
X-LIC-LOCATION:Africa/Tripoli
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+005244
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:CET
|
||||
DTSTART:19200101T000000
|
||||
RDATE:19200101T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:+0100
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:CEST
|
||||
DTSTART:19511014T020000
|
||||
RDATE:19511014T020000
|
||||
RDATE:19531009T020000
|
||||
RDATE:19550930T000000
|
||||
RDATE:19820401T000000
|
||||
RDATE:19830401T000000
|
||||
RDATE:19840401T000000
|
||||
RDATE:19850406T000000
|
||||
RDATE:19860404T000000
|
||||
RDATE:19870401T000000
|
||||
RDATE:19880401T000000
|
||||
RDATE:19890401T000000
|
||||
RDATE:19970404T000000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0200
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:CET
|
||||
DTSTART:19520101T000000
|
||||
RDATE:19520101T000000
|
||||
RDATE:19540101T000000
|
||||
RDATE:19560101T000000
|
||||
RDATE:19820101T000000
|
||||
RDATE:19821001T000000
|
||||
RDATE:19831001T000000
|
||||
RDATE:19841001T000000
|
||||
RDATE:19851001T000000
|
||||
RDATE:19861003T000000
|
||||
RDATE:19871001T000000
|
||||
RDATE:19881001T000000
|
||||
RDATE:19891001T000000
|
||||
RDATE:19960930T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0100
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:EET
|
||||
DTSTART:19590101T000000
|
||||
RDATE:19590101T000000
|
||||
RDATE:19900504T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0200
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:EET
|
||||
DTSTART:19971004T000000
|
||||
RDATE:19971004T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
66
vzic/zoneinfo/Africa/Tunis.ics
Normal file
66
vzic/zoneinfo/Africa/Tunis.ics
Normal file
|
@ -0,0 +1,66 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Tunis
|
||||
X-LIC-LOCATION:Africa/Tunis
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+004044
|
||||
TZOFFSETTO:+000921
|
||||
TZNAME:PMT
|
||||
DTSTART:18810512T000000
|
||||
RDATE:18810512T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+000921
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:CET
|
||||
DTSTART:19110311T000000
|
||||
RDATE:19110311T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:+0100
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:CEST
|
||||
DTSTART:19390415T230000
|
||||
RDATE:19390415T230000
|
||||
RDATE:19400225T230000
|
||||
RDATE:19420309T000000
|
||||
RDATE:19430329T020000
|
||||
RDATE:19430425T020000
|
||||
RDATE:19440403T020000
|
||||
RDATE:19450402T020000
|
||||
RDATE:19770430T000000
|
||||
RDATE:19780501T000000
|
||||
RDATE:19880601T000000
|
||||
RDATE:19890326T000000
|
||||
RDATE:19900501T000000
|
||||
RDATE:20050501T000000
|
||||
RDATE:20060326T020000
|
||||
RDATE:20070325T020000
|
||||
RDATE:20080330T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0200
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:CET
|
||||
DTSTART:19391119T000000
|
||||
RDATE:19391119T000000
|
||||
RDATE:19411006T000000
|
||||
RDATE:19421102T030000
|
||||
RDATE:19430417T020000
|
||||
RDATE:19431004T020000
|
||||
RDATE:19441008T000000
|
||||
RDATE:19450916T000000
|
||||
RDATE:19770924T010000
|
||||
RDATE:19781001T010000
|
||||
RDATE:19880925T010000
|
||||
RDATE:19890924T010000
|
||||
RDATE:19900930T010000
|
||||
RDATE:20050930T020000
|
||||
RDATE:20061029T030000
|
||||
RDATE:20071028T030000
|
||||
RDATE:20081026T030000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
64
vzic/zoneinfo/Africa/Windhoek.ics
Normal file
64
vzic/zoneinfo/Africa/Windhoek.ics
Normal file
|
@ -0,0 +1,64 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/Africa/Windhoek
|
||||
X-LIC-LOCATION:Africa/Windhoek
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:+0100
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:WAST
|
||||
DTSTART:19940904T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=1SU
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0200
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:WAT
|
||||
DTSTART:19950402T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+010824
|
||||
TZOFFSETTO:+0130
|
||||
TZNAME:SWAT
|
||||
DTSTART:18920208T000000
|
||||
RDATE:18920208T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0130
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:SAST
|
||||
DTSTART:19030301T000000
|
||||
RDATE:19030301T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:+0200
|
||||
TZOFFSETTO:+0300
|
||||
TZNAME:SAST
|
||||
DTSTART:19420920T020000
|
||||
RDATE:19420920T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0300
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:SAST
|
||||
DTSTART:19430321T020000
|
||||
RDATE:19430321T020000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0200
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:CAT
|
||||
DTSTART:19900321T000000
|
||||
RDATE:19900321T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0200
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:WAT
|
||||
DTSTART:19940403T000000
|
||||
RDATE:19940403T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
186
vzic/zoneinfo/America/Adak.ics
Normal file
186
vzic/zoneinfo/America/Adak.ics
Normal file
|
@ -0,0 +1,186 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Adak
|
||||
X-LIC-LOCATION:America/Adak
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-1000
|
||||
TZOFFSETTO:-0900
|
||||
TZNAME:HADT
|
||||
DTSTART:20070311T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0900
|
||||
TZOFFSETTO:-1000
|
||||
TZNAME:HAST
|
||||
DTSTART:20071104T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+121321
|
||||
TZOFFSETTO:-114638
|
||||
TZNAME:LMT
|
||||
DTSTART:18671018T000000
|
||||
RDATE:18671018T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-114638
|
||||
TZOFFSETTO:-1100
|
||||
TZNAME:NST
|
||||
DTSTART:19000820T120000
|
||||
RDATE:19000820T120000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-1100
|
||||
TZOFFSETTO:-1100
|
||||
TZNAME:NST
|
||||
DTSTART:19420101T000000
|
||||
RDATE:19420101T000000
|
||||
RDATE:19460101T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-1100
|
||||
TZOFFSETTO:-1000
|
||||
TZNAME:NWT
|
||||
DTSTART:19420209T020000
|
||||
RDATE:19420209T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-1000
|
||||
TZOFFSETTO:-1000
|
||||
TZNAME:NPT
|
||||
DTSTART:19450814T130000
|
||||
RDATE:19450814T130000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-1000
|
||||
TZOFFSETTO:-1100
|
||||
TZNAME:NST
|
||||
DTSTART:19450930T020000
|
||||
RDATE:19450930T020000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-1100
|
||||
TZOFFSETTO:-1100
|
||||
TZNAME:BST
|
||||
DTSTART:19670401T000000
|
||||
RDATE:19670401T000000
|
||||
RDATE:19690101T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-1100
|
||||
TZOFFSETTO:-1000
|
||||
TZNAME:BDT
|
||||
DTSTART:19690427T020000
|
||||
RDATE:19690427T020000
|
||||
RDATE:19700426T020000
|
||||
RDATE:19710425T020000
|
||||
RDATE:19720430T020000
|
||||
RDATE:19730429T020000
|
||||
RDATE:19740106T020000
|
||||
RDATE:19750223T020000
|
||||
RDATE:19760425T020000
|
||||
RDATE:19770424T020000
|
||||
RDATE:19780430T020000
|
||||
RDATE:19790429T020000
|
||||
RDATE:19800427T020000
|
||||
RDATE:19810426T020000
|
||||
RDATE:19820425T020000
|
||||
RDATE:19830424T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-1000
|
||||
TZOFFSETTO:-1100
|
||||
TZNAME:BST
|
||||
DTSTART:19691026T020000
|
||||
RDATE:19691026T020000
|
||||
RDATE:19701025T020000
|
||||
RDATE:19711031T020000
|
||||
RDATE:19721029T020000
|
||||
RDATE:19731028T020000
|
||||
RDATE:19741027T020000
|
||||
RDATE:19751026T020000
|
||||
RDATE:19761031T020000
|
||||
RDATE:19771030T020000
|
||||
RDATE:19781029T020000
|
||||
RDATE:19791028T020000
|
||||
RDATE:19801026T020000
|
||||
RDATE:19811025T020000
|
||||
RDATE:19821031T020000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-1000
|
||||
TZOFFSETTO:-1000
|
||||
TZNAME:AHST
|
||||
DTSTART:19831030T020000
|
||||
RDATE:19831030T020000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-1000
|
||||
TZOFFSETTO:-1000
|
||||
TZNAME:HAST
|
||||
DTSTART:19831130T000000
|
||||
RDATE:19831130T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-1000
|
||||
TZOFFSETTO:-0900
|
||||
TZNAME:HADT
|
||||
DTSTART:19840429T020000
|
||||
RDATE:19840429T020000
|
||||
RDATE:19850428T020000
|
||||
RDATE:19860427T020000
|
||||
RDATE:19870405T020000
|
||||
RDATE:19880403T020000
|
||||
RDATE:19890402T020000
|
||||
RDATE:19900401T020000
|
||||
RDATE:19910407T020000
|
||||
RDATE:19920405T020000
|
||||
RDATE:19930404T020000
|
||||
RDATE:19940403T020000
|
||||
RDATE:19950402T020000
|
||||
RDATE:19960407T020000
|
||||
RDATE:19970406T020000
|
||||
RDATE:19980405T020000
|
||||
RDATE:19990404T020000
|
||||
RDATE:20000402T020000
|
||||
RDATE:20010401T020000
|
||||
RDATE:20020407T020000
|
||||
RDATE:20030406T020000
|
||||
RDATE:20040404T020000
|
||||
RDATE:20050403T020000
|
||||
RDATE:20060402T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0900
|
||||
TZOFFSETTO:-1000
|
||||
TZNAME:HAST
|
||||
DTSTART:19841028T020000
|
||||
RDATE:19841028T020000
|
||||
RDATE:19851027T020000
|
||||
RDATE:19861026T020000
|
||||
RDATE:19871025T020000
|
||||
RDATE:19881030T020000
|
||||
RDATE:19891029T020000
|
||||
RDATE:19901028T020000
|
||||
RDATE:19911027T020000
|
||||
RDATE:19921025T020000
|
||||
RDATE:19931031T020000
|
||||
RDATE:19941030T020000
|
||||
RDATE:19951029T020000
|
||||
RDATE:19961027T020000
|
||||
RDATE:19971026T020000
|
||||
RDATE:19981025T020000
|
||||
RDATE:19991031T020000
|
||||
RDATE:20001029T020000
|
||||
RDATE:20011028T020000
|
||||
RDATE:20021027T020000
|
||||
RDATE:20031026T020000
|
||||
RDATE:20041031T020000
|
||||
RDATE:20051030T020000
|
||||
RDATE:20061029T020000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
1
vzic/zoneinfo/America/Anaheim.ics
Symbolic link
1
vzic/zoneinfo/America/Anaheim.ics
Symbolic link
|
@ -0,0 +1 @@
|
|||
Los_Angeles.ics
|
186
vzic/zoneinfo/America/Anchorage.ics
Normal file
186
vzic/zoneinfo/America/Anchorage.ics
Normal file
|
@ -0,0 +1,186 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Anchorage
|
||||
X-LIC-LOCATION:America/Anchorage
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0900
|
||||
TZOFFSETTO:-0800
|
||||
TZNAME:AKDT
|
||||
DTSTART:20070311T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0800
|
||||
TZOFFSETTO:-0900
|
||||
TZNAME:AKST
|
||||
DTSTART:20071104T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+140024
|
||||
TZOFFSETTO:-095936
|
||||
TZNAME:LMT
|
||||
DTSTART:18671018T000000
|
||||
RDATE:18671018T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-095936
|
||||
TZOFFSETTO:-1000
|
||||
TZNAME:CAT
|
||||
DTSTART:19000820T120000
|
||||
RDATE:19000820T120000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-1000
|
||||
TZOFFSETTO:-1000
|
||||
TZNAME:CAT
|
||||
DTSTART:19420101T000000
|
||||
RDATE:19420101T000000
|
||||
RDATE:19460101T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-1000
|
||||
TZOFFSETTO:-0900
|
||||
TZNAME:CAWT
|
||||
DTSTART:19420209T020000
|
||||
RDATE:19420209T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0900
|
||||
TZOFFSETTO:-0900
|
||||
TZNAME:CAPT
|
||||
DTSTART:19450814T140000
|
||||
RDATE:19450814T140000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0900
|
||||
TZOFFSETTO:-1000
|
||||
TZNAME:CAT
|
||||
DTSTART:19450930T020000
|
||||
RDATE:19450930T020000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-1000
|
||||
TZOFFSETTO:-1000
|
||||
TZNAME:AHST
|
||||
DTSTART:19670401T000000
|
||||
RDATE:19670401T000000
|
||||
RDATE:19690101T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-1000
|
||||
TZOFFSETTO:-0900
|
||||
TZNAME:AHDT
|
||||
DTSTART:19690427T020000
|
||||
RDATE:19690427T020000
|
||||
RDATE:19700426T020000
|
||||
RDATE:19710425T020000
|
||||
RDATE:19720430T020000
|
||||
RDATE:19730429T020000
|
||||
RDATE:19740106T020000
|
||||
RDATE:19750223T020000
|
||||
RDATE:19760425T020000
|
||||
RDATE:19770424T020000
|
||||
RDATE:19780430T020000
|
||||
RDATE:19790429T020000
|
||||
RDATE:19800427T020000
|
||||
RDATE:19810426T020000
|
||||
RDATE:19820425T020000
|
||||
RDATE:19830424T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0900
|
||||
TZOFFSETTO:-1000
|
||||
TZNAME:AHST
|
||||
DTSTART:19691026T020000
|
||||
RDATE:19691026T020000
|
||||
RDATE:19701025T020000
|
||||
RDATE:19711031T020000
|
||||
RDATE:19721029T020000
|
||||
RDATE:19731028T020000
|
||||
RDATE:19741027T020000
|
||||
RDATE:19751026T020000
|
||||
RDATE:19761031T020000
|
||||
RDATE:19771030T020000
|
||||
RDATE:19781029T020000
|
||||
RDATE:19791028T020000
|
||||
RDATE:19801026T020000
|
||||
RDATE:19811025T020000
|
||||
RDATE:19821031T020000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0900
|
||||
TZOFFSETTO:-0900
|
||||
TZNAME:YST
|
||||
DTSTART:19831030T020000
|
||||
RDATE:19831030T020000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0900
|
||||
TZOFFSETTO:-0900
|
||||
TZNAME:AKST
|
||||
DTSTART:19831130T000000
|
||||
RDATE:19831130T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0900
|
||||
TZOFFSETTO:-0800
|
||||
TZNAME:AKDT
|
||||
DTSTART:19840429T020000
|
||||
RDATE:19840429T020000
|
||||
RDATE:19850428T020000
|
||||
RDATE:19860427T020000
|
||||
RDATE:19870405T020000
|
||||
RDATE:19880403T020000
|
||||
RDATE:19890402T020000
|
||||
RDATE:19900401T020000
|
||||
RDATE:19910407T020000
|
||||
RDATE:19920405T020000
|
||||
RDATE:19930404T020000
|
||||
RDATE:19940403T020000
|
||||
RDATE:19950402T020000
|
||||
RDATE:19960407T020000
|
||||
RDATE:19970406T020000
|
||||
RDATE:19980405T020000
|
||||
RDATE:19990404T020000
|
||||
RDATE:20000402T020000
|
||||
RDATE:20010401T020000
|
||||
RDATE:20020407T020000
|
||||
RDATE:20030406T020000
|
||||
RDATE:20040404T020000
|
||||
RDATE:20050403T020000
|
||||
RDATE:20060402T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0800
|
||||
TZOFFSETTO:-0900
|
||||
TZNAME:AKST
|
||||
DTSTART:19841028T020000
|
||||
RDATE:19841028T020000
|
||||
RDATE:19851027T020000
|
||||
RDATE:19861026T020000
|
||||
RDATE:19871025T020000
|
||||
RDATE:19881030T020000
|
||||
RDATE:19891029T020000
|
||||
RDATE:19901028T020000
|
||||
RDATE:19911027T020000
|
||||
RDATE:19921025T020000
|
||||
RDATE:19931031T020000
|
||||
RDATE:19941030T020000
|
||||
RDATE:19951029T020000
|
||||
RDATE:19961027T020000
|
||||
RDATE:19971026T020000
|
||||
RDATE:19981025T020000
|
||||
RDATE:19991031T020000
|
||||
RDATE:20001029T020000
|
||||
RDATE:20011028T020000
|
||||
RDATE:20021027T020000
|
||||
RDATE:20031026T020000
|
||||
RDATE:20041031T020000
|
||||
RDATE:20051030T020000
|
||||
RDATE:20061029T020000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
15
vzic/zoneinfo/America/Anguilla.ics
Normal file
15
vzic/zoneinfo/America/Anguilla.ics
Normal file
|
@ -0,0 +1,15 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Anguilla
|
||||
X-LIC-LOCATION:America/Anguilla
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-041216
|
||||
TZOFFSETTO:-0400
|
||||
TZNAME:AST
|
||||
DTSTART:19120302T000000
|
||||
RDATE:19120302T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
22
vzic/zoneinfo/America/Antigua.ics
Normal file
22
vzic/zoneinfo/America/Antigua.ics
Normal file
|
@ -0,0 +1,22 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Antigua
|
||||
X-LIC-LOCATION:America/Antigua
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-040712
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:EST
|
||||
DTSTART:19120302T000000
|
||||
RDATE:19120302T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0400
|
||||
TZNAME:AST
|
||||
DTSTART:19510101T000000
|
||||
RDATE:19510101T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
51
vzic/zoneinfo/America/Atikokan.ics
Normal file
51
vzic/zoneinfo/America/Atikokan.ics
Normal file
|
@ -0,0 +1,51 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Atikokan
|
||||
X-LIC-LOCATION:America/Atikokan
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-060628
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:CST
|
||||
DTSTART:18950101T000000
|
||||
RDATE:18950101T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:CDT
|
||||
DTSTART:19180414T020000
|
||||
RDATE:19180414T020000
|
||||
RDATE:19400929T000000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:CST
|
||||
DTSTART:19181031T020000
|
||||
RDATE:19181031T020000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:CWT
|
||||
DTSTART:19420209T020000
|
||||
RDATE:19420209T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:CPT
|
||||
DTSTART:19450814T180000
|
||||
RDATE:19450814T180000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:EST
|
||||
DTSTART:19450930T020000
|
||||
RDATE:19450930T020000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
1
vzic/zoneinfo/America/Atlanta.ics
Symbolic link
1
vzic/zoneinfo/America/Atlanta.ics
Symbolic link
|
@ -0,0 +1 @@
|
|||
New_York.ics
|
102
vzic/zoneinfo/America/Bahia_Banderas.ics
Normal file
102
vzic/zoneinfo/America/Bahia_Banderas.ics
Normal file
|
@ -0,0 +1,102 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Bahia_Banderas
|
||||
X-LIC-LOCATION:America/Bahia_Banderas
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:CST
|
||||
DTSTART:20101031T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:CDT
|
||||
DTSTART:20110403T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0701
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:MST
|
||||
DTSTART:19211231T235900
|
||||
RDATE:19211231T235900
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:CST
|
||||
DTSTART:19270610T230000
|
||||
RDATE:19270610T230000
|
||||
RDATE:19310501T230000
|
||||
RDATE:19320401T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:MST
|
||||
DTSTART:19301115T000000
|
||||
RDATE:19301115T000000
|
||||
RDATE:19311001T000000
|
||||
RDATE:19420424T000000
|
||||
RDATE:19961027T020000
|
||||
RDATE:19971026T020000
|
||||
RDATE:19981025T020000
|
||||
RDATE:19991031T020000
|
||||
RDATE:20001029T020000
|
||||
RDATE:20010930T020000
|
||||
RDATE:20021027T020000
|
||||
RDATE:20031026T020000
|
||||
RDATE:20041031T020000
|
||||
RDATE:20051030T020000
|
||||
RDATE:20061029T020000
|
||||
RDATE:20071028T020000
|
||||
RDATE:20081026T020000
|
||||
RDATE:20091025T020000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0800
|
||||
TZNAME:PST
|
||||
DTSTART:19490114T000000
|
||||
RDATE:19490114T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0800
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:MST
|
||||
DTSTART:19700101T000000
|
||||
RDATE:19700101T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:MDT
|
||||
DTSTART:19960407T020000
|
||||
RDATE:19960407T020000
|
||||
RDATE:19970406T020000
|
||||
RDATE:19980405T020000
|
||||
RDATE:19990404T020000
|
||||
RDATE:20000402T020000
|
||||
RDATE:20010506T020000
|
||||
RDATE:20020407T020000
|
||||
RDATE:20030406T020000
|
||||
RDATE:20040404T020000
|
||||
RDATE:20050403T020000
|
||||
RDATE:20060402T020000
|
||||
RDATE:20070401T020000
|
||||
RDATE:20080406T020000
|
||||
RDATE:20090405T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:CDT
|
||||
DTSTART:20100404T020000
|
||||
RDATE:20100404T020000
|
||||
END:DAYLIGHT
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
42
vzic/zoneinfo/America/Barbados.ics
Normal file
42
vzic/zoneinfo/America/Barbados.ics
Normal file
|
@ -0,0 +1,42 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Barbados
|
||||
X-LIC-LOCATION:America/Barbados
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-035828
|
||||
TZOFFSETTO:-035828
|
||||
TZNAME:BMT
|
||||
DTSTART:19240101T000000
|
||||
RDATE:19240101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-035828
|
||||
TZOFFSETTO:-0400
|
||||
TZNAME:AST
|
||||
DTSTART:19320101T000000
|
||||
RDATE:19320101T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0300
|
||||
TZNAME:ADT
|
||||
DTSTART:19770612T020000
|
||||
RDATE:19770612T020000
|
||||
RDATE:19780416T020000
|
||||
RDATE:19790415T020000
|
||||
RDATE:19800420T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0400
|
||||
TZNAME:AST
|
||||
DTSTART:19771002T020000
|
||||
RDATE:19771002T020000
|
||||
RDATE:19781001T020000
|
||||
RDATE:19790930T020000
|
||||
RDATE:19800925T020000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
93
vzic/zoneinfo/America/Belize.ics
Normal file
93
vzic/zoneinfo/America/Belize.ics
Normal file
|
@ -0,0 +1,93 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Belize
|
||||
X-LIC-LOCATION:America/Belize
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-055248
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:CST
|
||||
DTSTART:19120401T000000
|
||||
RDATE:19120401T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0530
|
||||
TZNAME:CHDT
|
||||
DTSTART:19181006T000000
|
||||
RDATE:19181006T000000
|
||||
RDATE:19191005T000000
|
||||
RDATE:19201003T000000
|
||||
RDATE:19211002T000000
|
||||
RDATE:19221008T000000
|
||||
RDATE:19231007T000000
|
||||
RDATE:19241005T000000
|
||||
RDATE:19251004T000000
|
||||
RDATE:19261003T000000
|
||||
RDATE:19271002T000000
|
||||
RDATE:19281007T000000
|
||||
RDATE:19291006T000000
|
||||
RDATE:19301005T000000
|
||||
RDATE:19311004T000000
|
||||
RDATE:19321002T000000
|
||||
RDATE:19331008T000000
|
||||
RDATE:19341007T000000
|
||||
RDATE:19351006T000000
|
||||
RDATE:19361004T000000
|
||||
RDATE:19371003T000000
|
||||
RDATE:19381002T000000
|
||||
RDATE:19391008T000000
|
||||
RDATE:19401006T000000
|
||||
RDATE:19411005T000000
|
||||
RDATE:19421004T000000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0530
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:CST
|
||||
DTSTART:19190209T000000
|
||||
RDATE:19190209T000000
|
||||
RDATE:19200215T000000
|
||||
RDATE:19210213T000000
|
||||
RDATE:19220212T000000
|
||||
RDATE:19230211T000000
|
||||
RDATE:19240210T000000
|
||||
RDATE:19250215T000000
|
||||
RDATE:19260214T000000
|
||||
RDATE:19270213T000000
|
||||
RDATE:19280212T000000
|
||||
RDATE:19290210T000000
|
||||
RDATE:19300209T000000
|
||||
RDATE:19310215T000000
|
||||
RDATE:19320214T000000
|
||||
RDATE:19330212T000000
|
||||
RDATE:19340211T000000
|
||||
RDATE:19350210T000000
|
||||
RDATE:19360209T000000
|
||||
RDATE:19370214T000000
|
||||
RDATE:19380213T000000
|
||||
RDATE:19390212T000000
|
||||
RDATE:19400211T000000
|
||||
RDATE:19410209T000000
|
||||
RDATE:19420215T000000
|
||||
RDATE:19430214T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:CDT
|
||||
DTSTART:19731205T000000
|
||||
RDATE:19731205T000000
|
||||
RDATE:19821218T000000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:CST
|
||||
DTSTART:19740209T000000
|
||||
RDATE:19740209T000000
|
||||
RDATE:19830212T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
51
vzic/zoneinfo/America/Blanc-Sablon.ics
Normal file
51
vzic/zoneinfo/America/Blanc-Sablon.ics
Normal file
|
@ -0,0 +1,51 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Blanc-Sablon
|
||||
X-LIC-LOCATION:America/Blanc-Sablon
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-034828
|
||||
TZOFFSETTO:-0400
|
||||
TZNAME:AST
|
||||
DTSTART:18840101T000000
|
||||
RDATE:18840101T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0300
|
||||
TZNAME:ADT
|
||||
DTSTART:19180414T020000
|
||||
RDATE:19180414T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0400
|
||||
TZNAME:AST
|
||||
DTSTART:19181031T020000
|
||||
RDATE:19181031T020000
|
||||
RDATE:19450930T020000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0300
|
||||
TZNAME:AWT
|
||||
DTSTART:19420209T020000
|
||||
RDATE:19420209T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0300
|
||||
TZNAME:APT
|
||||
DTSTART:19450814T200000
|
||||
RDATE:19450814T200000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0400
|
||||
TZNAME:AST
|
||||
DTSTART:19700101T000000
|
||||
RDATE:19700101T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
166
vzic/zoneinfo/America/Boise.ics
Normal file
166
vzic/zoneinfo/America/Boise.ics
Normal file
|
@ -0,0 +1,166 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Boise
|
||||
X-LIC-LOCATION:America/Boise
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:MDT
|
||||
DTSTART:20070311T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:MST
|
||||
DTSTART:20071104T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-074449
|
||||
TZOFFSETTO:-0800
|
||||
TZNAME:PST
|
||||
DTSTART:18831118T121511
|
||||
RDATE:18831118T121511
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0800
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:PDT
|
||||
DTSTART:19180331T020000
|
||||
RDATE:19180331T020000
|
||||
RDATE:19190330T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0800
|
||||
TZNAME:PST
|
||||
DTSTART:19181027T020000
|
||||
RDATE:19181027T020000
|
||||
RDATE:19191026T020000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0800
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:MST
|
||||
DTSTART:19230513T020000
|
||||
RDATE:19230513T020000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:MWT
|
||||
DTSTART:19420209T020000
|
||||
RDATE:19420209T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:MPT
|
||||
DTSTART:19450814T170000
|
||||
RDATE:19450814T170000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:MST
|
||||
DTSTART:19450930T020000
|
||||
RDATE:19450930T020000
|
||||
RDATE:19671029T020000
|
||||
RDATE:19681027T020000
|
||||
RDATE:19691026T020000
|
||||
RDATE:19701025T020000
|
||||
RDATE:19711031T020000
|
||||
RDATE:19721029T020000
|
||||
RDATE:19731028T020000
|
||||
RDATE:19741027T020000
|
||||
RDATE:19751026T020000
|
||||
RDATE:19761031T020000
|
||||
RDATE:19771030T020000
|
||||
RDATE:19781029T020000
|
||||
RDATE:19791028T020000
|
||||
RDATE:19801026T020000
|
||||
RDATE:19811025T020000
|
||||
RDATE:19821031T020000
|
||||
RDATE:19831030T020000
|
||||
RDATE:19841028T020000
|
||||
RDATE:19851027T020000
|
||||
RDATE:19861026T020000
|
||||
RDATE:19871025T020000
|
||||
RDATE:19881030T020000
|
||||
RDATE:19891029T020000
|
||||
RDATE:19901028T020000
|
||||
RDATE:19911027T020000
|
||||
RDATE:19921025T020000
|
||||
RDATE:19931031T020000
|
||||
RDATE:19941030T020000
|
||||
RDATE:19951029T020000
|
||||
RDATE:19961027T020000
|
||||
RDATE:19971026T020000
|
||||
RDATE:19981025T020000
|
||||
RDATE:19991031T020000
|
||||
RDATE:20001029T020000
|
||||
RDATE:20011028T020000
|
||||
RDATE:20021027T020000
|
||||
RDATE:20031026T020000
|
||||
RDATE:20041031T020000
|
||||
RDATE:20051030T020000
|
||||
RDATE:20061029T020000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:MDT
|
||||
DTSTART:19670430T020000
|
||||
RDATE:19670430T020000
|
||||
RDATE:19680428T020000
|
||||
RDATE:19690427T020000
|
||||
RDATE:19700426T020000
|
||||
RDATE:19710425T020000
|
||||
RDATE:19720430T020000
|
||||
RDATE:19730429T020000
|
||||
RDATE:19740203T020000
|
||||
RDATE:19750223T020000
|
||||
RDATE:19760425T020000
|
||||
RDATE:19770424T020000
|
||||
RDATE:19780430T020000
|
||||
RDATE:19790429T020000
|
||||
RDATE:19800427T020000
|
||||
RDATE:19810426T020000
|
||||
RDATE:19820425T020000
|
||||
RDATE:19830424T020000
|
||||
RDATE:19840429T020000
|
||||
RDATE:19850428T020000
|
||||
RDATE:19860427T020000
|
||||
RDATE:19870405T020000
|
||||
RDATE:19880403T020000
|
||||
RDATE:19890402T020000
|
||||
RDATE:19900401T020000
|
||||
RDATE:19910407T020000
|
||||
RDATE:19920405T020000
|
||||
RDATE:19930404T020000
|
||||
RDATE:19940403T020000
|
||||
RDATE:19950402T020000
|
||||
RDATE:19960407T020000
|
||||
RDATE:19970406T020000
|
||||
RDATE:19980405T020000
|
||||
RDATE:19990404T020000
|
||||
RDATE:20000402T020000
|
||||
RDATE:20010401T020000
|
||||
RDATE:20020407T020000
|
||||
RDATE:20030406T020000
|
||||
RDATE:20040404T020000
|
||||
RDATE:20050403T020000
|
||||
RDATE:20060402T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:MST
|
||||
DTSTART:19740101T000000
|
||||
RDATE:19740101T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
155
vzic/zoneinfo/America/Cambridge_Bay.ics
Normal file
155
vzic/zoneinfo/America/Cambridge_Bay.ics
Normal file
|
@ -0,0 +1,155 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Cambridge_Bay
|
||||
X-LIC-LOCATION:America/Cambridge_Bay
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:MDT
|
||||
DTSTART:20070311T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:MST
|
||||
DTSTART:20071104T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:+0000
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:MST
|
||||
DTSTART:19200101T000000
|
||||
RDATE:19200101T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:MWT
|
||||
DTSTART:19420209T020000
|
||||
RDATE:19420209T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:MPT
|
||||
DTSTART:19450814T170000
|
||||
RDATE:19450814T170000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:MST
|
||||
DTSTART:19450930T020000
|
||||
RDATE:19450930T020000
|
||||
RDATE:19801026T020000
|
||||
RDATE:19811025T020000
|
||||
RDATE:19821031T020000
|
||||
RDATE:19831030T020000
|
||||
RDATE:19841028T020000
|
||||
RDATE:19851027T020000
|
||||
RDATE:19861026T020000
|
||||
RDATE:19871025T020000
|
||||
RDATE:19881030T020000
|
||||
RDATE:19891029T020000
|
||||
RDATE:19901028T020000
|
||||
RDATE:19911027T020000
|
||||
RDATE:19921025T020000
|
||||
RDATE:19931031T020000
|
||||
RDATE:19941030T020000
|
||||
RDATE:19951029T020000
|
||||
RDATE:19961027T020000
|
||||
RDATE:19971026T020000
|
||||
RDATE:19981025T020000
|
||||
RDATE:20011028T020000
|
||||
RDATE:20021027T020000
|
||||
RDATE:20031026T020000
|
||||
RDATE:20041031T020000
|
||||
RDATE:20051030T020000
|
||||
RDATE:20061029T020000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:MDDT
|
||||
DTSTART:19650425T000000
|
||||
RDATE:19650425T000000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:MST
|
||||
DTSTART:19651031T020000
|
||||
RDATE:19651031T020000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:MDT
|
||||
DTSTART:19800427T020000
|
||||
RDATE:19800427T020000
|
||||
RDATE:19810426T020000
|
||||
RDATE:19820425T020000
|
||||
RDATE:19830424T020000
|
||||
RDATE:19840429T020000
|
||||
RDATE:19850428T020000
|
||||
RDATE:19860427T020000
|
||||
RDATE:19870405T020000
|
||||
RDATE:19880403T020000
|
||||
RDATE:19890402T020000
|
||||
RDATE:19900401T020000
|
||||
RDATE:19910407T020000
|
||||
RDATE:19920405T020000
|
||||
RDATE:19930404T020000
|
||||
RDATE:19940403T020000
|
||||
RDATE:19950402T020000
|
||||
RDATE:19960407T020000
|
||||
RDATE:19970406T020000
|
||||
RDATE:19980405T020000
|
||||
RDATE:19990404T020000
|
||||
RDATE:20020407T020000
|
||||
RDATE:20030406T020000
|
||||
RDATE:20040404T020000
|
||||
RDATE:20050403T020000
|
||||
RDATE:20060402T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:CST
|
||||
DTSTART:19991031T020000
|
||||
RDATE:19991031T020000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:CDT
|
||||
DTSTART:20000402T020000
|
||||
RDATE:20000402T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:EST
|
||||
DTSTART:20001029T020000
|
||||
RDATE:20001029T020000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:CST
|
||||
DTSTART:20001105T000000
|
||||
RDATE:20001105T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:MDT
|
||||
DTSTART:20010401T020000
|
||||
RDATE:20010401T020000
|
||||
END:DAYLIGHT
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
79
vzic/zoneinfo/America/Cancun.ics
Normal file
79
vzic/zoneinfo/America/Cancun.ics
Normal file
|
@ -0,0 +1,79 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Cancun
|
||||
X-LIC-LOCATION:America/Cancun
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:CDT
|
||||
DTSTART:20020407T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:CST
|
||||
DTSTART:20021027T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-054704
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:CST
|
||||
DTSTART:19220101T001256
|
||||
RDATE:19220101T001256
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:EST
|
||||
DTSTART:19811223T000000
|
||||
RDATE:19811223T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0400
|
||||
TZNAME:EDT
|
||||
DTSTART:19960407T020000
|
||||
RDATE:19960407T020000
|
||||
RDATE:19970406T020000
|
||||
RDATE:19980405T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:EST
|
||||
DTSTART:19961027T020000
|
||||
RDATE:19961027T020000
|
||||
RDATE:19971026T020000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:CDT
|
||||
DTSTART:19980802T020000
|
||||
RDATE:19980802T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:CST
|
||||
DTSTART:19981025T020000
|
||||
RDATE:19981025T020000
|
||||
RDATE:19991031T020000
|
||||
RDATE:20001029T020000
|
||||
RDATE:20010930T020000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:CDT
|
||||
DTSTART:19990404T020000
|
||||
RDATE:19990404T020000
|
||||
RDATE:20000402T020000
|
||||
RDATE:20010506T020000
|
||||
END:DAYLIGHT
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
22
vzic/zoneinfo/America/Cayman.ics
Normal file
22
vzic/zoneinfo/America/Cayman.ics
Normal file
|
@ -0,0 +1,22 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Cayman
|
||||
X-LIC-LOCATION:America/Cayman
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-052532
|
||||
TZOFFSETTO:-050712
|
||||
TZNAME:KMT
|
||||
DTSTART:18900101T000000
|
||||
RDATE:18900101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-050712
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:EST
|
||||
DTSTART:19120201T000000
|
||||
RDATE:19120201T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
242
vzic/zoneinfo/America/Chicago.ics
Normal file
242
vzic/zoneinfo/America/Chicago.ics
Normal file
|
@ -0,0 +1,242 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Chicago
|
||||
X-LIC-LOCATION:America/Chicago
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:CDT
|
||||
DTSTART:20070311T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:CST
|
||||
DTSTART:20071104T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-055036
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:CST
|
||||
DTSTART:18831118T120924
|
||||
RDATE:18831118T120924
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:CDT
|
||||
DTSTART:19180331T020000
|
||||
RDATE:19180331T020000
|
||||
RDATE:19190330T020000
|
||||
RDATE:19200613T020000
|
||||
RDATE:19210327T020000
|
||||
RDATE:19220430T020000
|
||||
RDATE:19230429T020000
|
||||
RDATE:19240427T020000
|
||||
RDATE:19250426T020000
|
||||
RDATE:19260425T020000
|
||||
RDATE:19270424T020000
|
||||
RDATE:19280429T020000
|
||||
RDATE:19290428T020000
|
||||
RDATE:19300427T020000
|
||||
RDATE:19310426T020000
|
||||
RDATE:19320424T020000
|
||||
RDATE:19330430T020000
|
||||
RDATE:19340429T020000
|
||||
RDATE:19350428T020000
|
||||
RDATE:19370425T020000
|
||||
RDATE:19380424T020000
|
||||
RDATE:19390430T020000
|
||||
RDATE:19400428T020000
|
||||
RDATE:19410427T020000
|
||||
RDATE:19460428T020000
|
||||
RDATE:19470427T020000
|
||||
RDATE:19480425T020000
|
||||
RDATE:19490424T020000
|
||||
RDATE:19500430T020000
|
||||
RDATE:19510429T020000
|
||||
RDATE:19520427T020000
|
||||
RDATE:19530426T020000
|
||||
RDATE:19540425T020000
|
||||
RDATE:19550424T020000
|
||||
RDATE:19560429T020000
|
||||
RDATE:19570428T020000
|
||||
RDATE:19580427T020000
|
||||
RDATE:19590426T020000
|
||||
RDATE:19600424T020000
|
||||
RDATE:19610430T020000
|
||||
RDATE:19620429T020000
|
||||
RDATE:19630428T020000
|
||||
RDATE:19640426T020000
|
||||
RDATE:19650425T020000
|
||||
RDATE:19660424T020000
|
||||
RDATE:19670430T020000
|
||||
RDATE:19680428T020000
|
||||
RDATE:19690427T020000
|
||||
RDATE:19700426T020000
|
||||
RDATE:19710425T020000
|
||||
RDATE:19720430T020000
|
||||
RDATE:19730429T020000
|
||||
RDATE:19740106T020000
|
||||
RDATE:19750223T020000
|
||||
RDATE:19760425T020000
|
||||
RDATE:19770424T020000
|
||||
RDATE:19780430T020000
|
||||
RDATE:19790429T020000
|
||||
RDATE:19800427T020000
|
||||
RDATE:19810426T020000
|
||||
RDATE:19820425T020000
|
||||
RDATE:19830424T020000
|
||||
RDATE:19840429T020000
|
||||
RDATE:19850428T020000
|
||||
RDATE:19860427T020000
|
||||
RDATE:19870405T020000
|
||||
RDATE:19880403T020000
|
||||
RDATE:19890402T020000
|
||||
RDATE:19900401T020000
|
||||
RDATE:19910407T020000
|
||||
RDATE:19920405T020000
|
||||
RDATE:19930404T020000
|
||||
RDATE:19940403T020000
|
||||
RDATE:19950402T020000
|
||||
RDATE:19960407T020000
|
||||
RDATE:19970406T020000
|
||||
RDATE:19980405T020000
|
||||
RDATE:19990404T020000
|
||||
RDATE:20000402T020000
|
||||
RDATE:20010401T020000
|
||||
RDATE:20020407T020000
|
||||
RDATE:20030406T020000
|
||||
RDATE:20040404T020000
|
||||
RDATE:20050403T020000
|
||||
RDATE:20060402T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:CST
|
||||
DTSTART:19181027T020000
|
||||
RDATE:19181027T020000
|
||||
RDATE:19191026T020000
|
||||
RDATE:19201031T020000
|
||||
RDATE:19211030T020000
|
||||
RDATE:19220924T020000
|
||||
RDATE:19230930T020000
|
||||
RDATE:19240928T020000
|
||||
RDATE:19250927T020000
|
||||
RDATE:19260926T020000
|
||||
RDATE:19270925T020000
|
||||
RDATE:19280930T020000
|
||||
RDATE:19290929T020000
|
||||
RDATE:19300928T020000
|
||||
RDATE:19310927T020000
|
||||
RDATE:19320925T020000
|
||||
RDATE:19330924T020000
|
||||
RDATE:19340930T020000
|
||||
RDATE:19350929T020000
|
||||
RDATE:19361115T020000
|
||||
RDATE:19370926T020000
|
||||
RDATE:19380925T020000
|
||||
RDATE:19390924T020000
|
||||
RDATE:19400929T020000
|
||||
RDATE:19410928T020000
|
||||
RDATE:19450930T020000
|
||||
RDATE:19460929T020000
|
||||
RDATE:19470928T020000
|
||||
RDATE:19480926T020000
|
||||
RDATE:19490925T020000
|
||||
RDATE:19500924T020000
|
||||
RDATE:19510930T020000
|
||||
RDATE:19520928T020000
|
||||
RDATE:19530927T020000
|
||||
RDATE:19540926T020000
|
||||
RDATE:19551030T020000
|
||||
RDATE:19561028T020000
|
||||
RDATE:19571027T020000
|
||||
RDATE:19581026T020000
|
||||
RDATE:19591025T020000
|
||||
RDATE:19601030T020000
|
||||
RDATE:19611029T020000
|
||||
RDATE:19621028T020000
|
||||
RDATE:19631027T020000
|
||||
RDATE:19641025T020000
|
||||
RDATE:19651031T020000
|
||||
RDATE:19661030T020000
|
||||
RDATE:19671029T020000
|
||||
RDATE:19681027T020000
|
||||
RDATE:19691026T020000
|
||||
RDATE:19701025T020000
|
||||
RDATE:19711031T020000
|
||||
RDATE:19721029T020000
|
||||
RDATE:19731028T020000
|
||||
RDATE:19741027T020000
|
||||
RDATE:19751026T020000
|
||||
RDATE:19761031T020000
|
||||
RDATE:19771030T020000
|
||||
RDATE:19781029T020000
|
||||
RDATE:19791028T020000
|
||||
RDATE:19801026T020000
|
||||
RDATE:19811025T020000
|
||||
RDATE:19821031T020000
|
||||
RDATE:19831030T020000
|
||||
RDATE:19841028T020000
|
||||
RDATE:19851027T020000
|
||||
RDATE:19861026T020000
|
||||
RDATE:19871025T020000
|
||||
RDATE:19881030T020000
|
||||
RDATE:19891029T020000
|
||||
RDATE:19901028T020000
|
||||
RDATE:19911027T020000
|
||||
RDATE:19921025T020000
|
||||
RDATE:19931031T020000
|
||||
RDATE:19941030T020000
|
||||
RDATE:19951029T020000
|
||||
RDATE:19961027T020000
|
||||
RDATE:19971026T020000
|
||||
RDATE:19981025T020000
|
||||
RDATE:19991031T020000
|
||||
RDATE:20001029T020000
|
||||
RDATE:20011028T020000
|
||||
RDATE:20021027T020000
|
||||
RDATE:20031026T020000
|
||||
RDATE:20041031T020000
|
||||
RDATE:20051030T020000
|
||||
RDATE:20061029T020000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:CST
|
||||
DTSTART:19200101T000000
|
||||
RDATE:19200101T000000
|
||||
RDATE:19420101T000000
|
||||
RDATE:19460101T000000
|
||||
RDATE:19670101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:EST
|
||||
DTSTART:19360301T020000
|
||||
RDATE:19360301T020000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:CWT
|
||||
DTSTART:19420209T020000
|
||||
RDATE:19420209T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:CPT
|
||||
DTSTART:19450814T180000
|
||||
RDATE:19450814T180000
|
||||
END:DAYLIGHT
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
90
vzic/zoneinfo/America/Chihuahua.ics
Normal file
90
vzic/zoneinfo/America/Chihuahua.ics
Normal file
|
@ -0,0 +1,90 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Chihuahua
|
||||
X-LIC-LOCATION:America/Chihuahua
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:MDT
|
||||
DTSTART:20020407T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:MST
|
||||
DTSTART:20021027T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-070420
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:MST
|
||||
DTSTART:19211231T235540
|
||||
RDATE:19211231T235540
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:CST
|
||||
DTSTART:19270610T230000
|
||||
RDATE:19270610T230000
|
||||
RDATE:19310501T230000
|
||||
RDATE:19320401T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:MST
|
||||
DTSTART:19301115T000000
|
||||
RDATE:19301115T000000
|
||||
RDATE:19311001T000000
|
||||
RDATE:19981025T020000
|
||||
RDATE:19991031T020000
|
||||
RDATE:20001029T020000
|
||||
RDATE:20010930T020000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:CST
|
||||
DTSTART:19960101T000000
|
||||
RDATE:19960101T000000
|
||||
RDATE:19980101T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:CDT
|
||||
DTSTART:19960407T020000
|
||||
RDATE:19960407T020000
|
||||
RDATE:19970406T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:CST
|
||||
DTSTART:19961027T020000
|
||||
RDATE:19961027T020000
|
||||
RDATE:19971026T020000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:MDT
|
||||
DTSTART:19980405T020000
|
||||
RDATE:19980405T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:MDT
|
||||
DTSTART:19990404T020000
|
||||
RDATE:19990404T020000
|
||||
RDATE:20000402T020000
|
||||
RDATE:20010506T020000
|
||||
END:DAYLIGHT
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
42
vzic/zoneinfo/America/Costa_Rica.ics
Normal file
42
vzic/zoneinfo/America/Costa_Rica.ics
Normal file
|
@ -0,0 +1,42 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Costa_Rica
|
||||
X-LIC-LOCATION:America/Costa_Rica
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-053620
|
||||
TZOFFSETTO:-053620
|
||||
TZNAME:SJMT
|
||||
DTSTART:18900101T000000
|
||||
RDATE:18900101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-053620
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:CST
|
||||
DTSTART:19210115T000000
|
||||
RDATE:19210115T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:CDT
|
||||
DTSTART:19790225T000000
|
||||
RDATE:19790225T000000
|
||||
RDATE:19800224T000000
|
||||
RDATE:19910119T000000
|
||||
RDATE:19920118T000000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:CST
|
||||
DTSTART:19790603T000000
|
||||
RDATE:19790603T000000
|
||||
RDATE:19800601T000000
|
||||
RDATE:19910701T000000
|
||||
RDATE:19920315T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
1
vzic/zoneinfo/America/Dallas.ics
Symbolic link
1
vzic/zoneinfo/America/Dallas.ics
Symbolic link
|
@ -0,0 +1 @@
|
|||
Chicago.ics
|
66
vzic/zoneinfo/America/Danmarkshavn.ics
Normal file
66
vzic/zoneinfo/America/Danmarkshavn.ics
Normal file
|
@ -0,0 +1,66 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Danmarkshavn
|
||||
X-LIC-LOCATION:America/Danmarkshavn
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-011440
|
||||
TZOFFSETTO:-0300
|
||||
TZNAME:WGT
|
||||
DTSTART:19160728T000000
|
||||
RDATE:19160728T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0200
|
||||
TZNAME:WGST
|
||||
DTSTART:19800406T020000
|
||||
RDATE:19800406T020000
|
||||
RDATE:19810328T220000
|
||||
RDATE:19820327T220000
|
||||
RDATE:19830326T220000
|
||||
RDATE:19840324T220000
|
||||
RDATE:19850330T220000
|
||||
RDATE:19860329T220000
|
||||
RDATE:19870328T220000
|
||||
RDATE:19880326T220000
|
||||
RDATE:19890325T220000
|
||||
RDATE:19900324T220000
|
||||
RDATE:19910330T220000
|
||||
RDATE:19920328T220000
|
||||
RDATE:19930327T220000
|
||||
RDATE:19940326T220000
|
||||
RDATE:19950325T220000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0200
|
||||
TZOFFSETTO:-0300
|
||||
TZNAME:WGT
|
||||
DTSTART:19800927T230000
|
||||
RDATE:19800927T230000
|
||||
RDATE:19810926T230000
|
||||
RDATE:19820925T230000
|
||||
RDATE:19830924T230000
|
||||
RDATE:19840929T230000
|
||||
RDATE:19850928T230000
|
||||
RDATE:19860927T230000
|
||||
RDATE:19870926T230000
|
||||
RDATE:19880924T230000
|
||||
RDATE:19890923T230000
|
||||
RDATE:19900929T230000
|
||||
RDATE:19910928T230000
|
||||
RDATE:19920926T230000
|
||||
RDATE:19930925T230000
|
||||
RDATE:19940924T230000
|
||||
RDATE:19950923T230000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:+0000
|
||||
TZNAME:GMT
|
||||
DTSTART:19960101T000000
|
||||
RDATE:19960101T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
153
vzic/zoneinfo/America/Dawson.ics
Normal file
153
vzic/zoneinfo/America/Dawson.ics
Normal file
|
@ -0,0 +1,153 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Dawson
|
||||
X-LIC-LOCATION:America/Dawson
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0800
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:PDT
|
||||
DTSTART:20070311T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0800
|
||||
TZNAME:PST
|
||||
DTSTART:20071104T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-091740
|
||||
TZOFFSETTO:-0900
|
||||
TZNAME:YST
|
||||
DTSTART:19000820T000000
|
||||
RDATE:19000820T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0900
|
||||
TZOFFSETTO:-0800
|
||||
TZNAME:YDT
|
||||
DTSTART:19180414T020000
|
||||
RDATE:19180414T020000
|
||||
RDATE:19190525T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0800
|
||||
TZOFFSETTO:-0900
|
||||
TZNAME:YST
|
||||
DTSTART:19181027T020000
|
||||
RDATE:19181027T020000
|
||||
RDATE:19191101T000000
|
||||
RDATE:19450930T020000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0900
|
||||
TZOFFSETTO:-0800
|
||||
TZNAME:YWT
|
||||
DTSTART:19420209T020000
|
||||
RDATE:19420209T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0800
|
||||
TZOFFSETTO:-0800
|
||||
TZNAME:YPT
|
||||
DTSTART:19450814T150000
|
||||
RDATE:19450814T150000
|
||||
END:DAYLIGHT
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0900
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:YDDT
|
||||
DTSTART:19650425T000000
|
||||
RDATE:19650425T000000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0900
|
||||
TZNAME:YST
|
||||
DTSTART:19651031T020000
|
||||
RDATE:19651031T020000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0900
|
||||
TZOFFSETTO:-0800
|
||||
DTSTART:19731028T000000
|
||||
RDATE:19731028T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0800
|
||||
TZOFFSETTO:-0800
|
||||
TZNAME:PST
|
||||
DTSTART:19800101T000000
|
||||
RDATE:19800101T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0800
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:PDT
|
||||
DTSTART:19800427T020000
|
||||
RDATE:19800427T020000
|
||||
RDATE:19810426T020000
|
||||
RDATE:19820425T020000
|
||||
RDATE:19830424T020000
|
||||
RDATE:19840429T020000
|
||||
RDATE:19850428T020000
|
||||
RDATE:19860427T020000
|
||||
RDATE:19870405T020000
|
||||
RDATE:19880403T020000
|
||||
RDATE:19890402T020000
|
||||
RDATE:19900401T020000
|
||||
RDATE:19910407T020000
|
||||
RDATE:19920405T020000
|
||||
RDATE:19930404T020000
|
||||
RDATE:19940403T020000
|
||||
RDATE:19950402T020000
|
||||
RDATE:19960407T020000
|
||||
RDATE:19970406T020000
|
||||
RDATE:19980405T020000
|
||||
RDATE:19990404T020000
|
||||
RDATE:20000402T020000
|
||||
RDATE:20010401T020000
|
||||
RDATE:20020407T020000
|
||||
RDATE:20030406T020000
|
||||
RDATE:20040404T020000
|
||||
RDATE:20050403T020000
|
||||
RDATE:20060402T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0800
|
||||
TZNAME:PST
|
||||
DTSTART:19801026T020000
|
||||
RDATE:19801026T020000
|
||||
RDATE:19811025T020000
|
||||
RDATE:19821031T020000
|
||||
RDATE:19831030T020000
|
||||
RDATE:19841028T020000
|
||||
RDATE:19851027T020000
|
||||
RDATE:19861026T020000
|
||||
RDATE:19871025T020000
|
||||
RDATE:19881030T020000
|
||||
RDATE:19891029T020000
|
||||
RDATE:19901028T020000
|
||||
RDATE:19911027T020000
|
||||
RDATE:19921025T020000
|
||||
RDATE:19931031T020000
|
||||
RDATE:19941030T020000
|
||||
RDATE:19951029T020000
|
||||
RDATE:19961027T020000
|
||||
RDATE:19971026T020000
|
||||
RDATE:19981025T020000
|
||||
RDATE:19991031T020000
|
||||
RDATE:20001029T020000
|
||||
RDATE:20011028T020000
|
||||
RDATE:20021027T020000
|
||||
RDATE:20031026T020000
|
||||
RDATE:20041031T020000
|
||||
RDATE:20051030T020000
|
||||
RDATE:20061029T020000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
109
vzic/zoneinfo/America/Dawson_Creek.ics
Normal file
109
vzic/zoneinfo/America/Dawson_Creek.ics
Normal file
|
@ -0,0 +1,109 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Dawson_Creek
|
||||
X-LIC-LOCATION:America/Dawson_Creek
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-080056
|
||||
TZOFFSETTO:-0800
|
||||
TZNAME:PST
|
||||
DTSTART:18840101T000000
|
||||
RDATE:18840101T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0800
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:PDT
|
||||
DTSTART:19180414T020000
|
||||
RDATE:19180414T020000
|
||||
RDATE:19470427T020000
|
||||
RDATE:19480425T020000
|
||||
RDATE:19490424T020000
|
||||
RDATE:19500430T020000
|
||||
RDATE:19510429T020000
|
||||
RDATE:19520427T020000
|
||||
RDATE:19530426T020000
|
||||
RDATE:19540425T020000
|
||||
RDATE:19550424T020000
|
||||
RDATE:19560429T020000
|
||||
RDATE:19570428T020000
|
||||
RDATE:19580427T020000
|
||||
RDATE:19590426T020000
|
||||
RDATE:19600424T020000
|
||||
RDATE:19610430T020000
|
||||
RDATE:19620429T020000
|
||||
RDATE:19630428T020000
|
||||
RDATE:19640426T020000
|
||||
RDATE:19650425T020000
|
||||
RDATE:19660424T020000
|
||||
RDATE:19670430T020000
|
||||
RDATE:19680428T020000
|
||||
RDATE:19690427T020000
|
||||
RDATE:19700426T020000
|
||||
RDATE:19710425T020000
|
||||
RDATE:19720430T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0800
|
||||
TZNAME:PST
|
||||
DTSTART:19181031T020000
|
||||
RDATE:19181031T020000
|
||||
RDATE:19450930T020000
|
||||
RDATE:19470928T020000
|
||||
RDATE:19480926T020000
|
||||
RDATE:19490925T020000
|
||||
RDATE:19500924T020000
|
||||
RDATE:19510930T020000
|
||||
RDATE:19520928T020000
|
||||
RDATE:19530927T020000
|
||||
RDATE:19540926T020000
|
||||
RDATE:19550925T020000
|
||||
RDATE:19560930T020000
|
||||
RDATE:19570929T020000
|
||||
RDATE:19580928T020000
|
||||
RDATE:19590927T020000
|
||||
RDATE:19600925T020000
|
||||
RDATE:19610924T020000
|
||||
RDATE:19621028T020000
|
||||
RDATE:19631027T020000
|
||||
RDATE:19641025T020000
|
||||
RDATE:19651031T020000
|
||||
RDATE:19661030T020000
|
||||
RDATE:19671029T020000
|
||||
RDATE:19681027T020000
|
||||
RDATE:19691026T020000
|
||||
RDATE:19701025T020000
|
||||
RDATE:19711031T020000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0800
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:PWT
|
||||
DTSTART:19420209T020000
|
||||
RDATE:19420209T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:PPT
|
||||
DTSTART:19450814T160000
|
||||
RDATE:19450814T160000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0800
|
||||
TZOFFSETTO:-0800
|
||||
TZNAME:PST
|
||||
DTSTART:19470101T000000
|
||||
RDATE:19470101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:MST
|
||||
DTSTART:19720830T020000
|
||||
RDATE:19720830T020000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
158
vzic/zoneinfo/America/Denver.ics
Normal file
158
vzic/zoneinfo/America/Denver.ics
Normal file
|
@ -0,0 +1,158 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Denver
|
||||
X-LIC-LOCATION:America/Denver
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:MDT
|
||||
DTSTART:20070311T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:MST
|
||||
DTSTART:20071104T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-065956
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:MST
|
||||
DTSTART:18831118T120004
|
||||
RDATE:18831118T120004
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:MDT
|
||||
DTSTART:19180331T020000
|
||||
RDATE:19180331T020000
|
||||
RDATE:19190330T020000
|
||||
RDATE:19200328T020000
|
||||
RDATE:19210327T020000
|
||||
RDATE:19650425T020000
|
||||
RDATE:19660424T020000
|
||||
RDATE:19670430T020000
|
||||
RDATE:19680428T020000
|
||||
RDATE:19690427T020000
|
||||
RDATE:19700426T020000
|
||||
RDATE:19710425T020000
|
||||
RDATE:19720430T020000
|
||||
RDATE:19730429T020000
|
||||
RDATE:19740106T020000
|
||||
RDATE:19750223T020000
|
||||
RDATE:19760425T020000
|
||||
RDATE:19770424T020000
|
||||
RDATE:19780430T020000
|
||||
RDATE:19790429T020000
|
||||
RDATE:19800427T020000
|
||||
RDATE:19810426T020000
|
||||
RDATE:19820425T020000
|
||||
RDATE:19830424T020000
|
||||
RDATE:19840429T020000
|
||||
RDATE:19850428T020000
|
||||
RDATE:19860427T020000
|
||||
RDATE:19870405T020000
|
||||
RDATE:19880403T020000
|
||||
RDATE:19890402T020000
|
||||
RDATE:19900401T020000
|
||||
RDATE:19910407T020000
|
||||
RDATE:19920405T020000
|
||||
RDATE:19930404T020000
|
||||
RDATE:19940403T020000
|
||||
RDATE:19950402T020000
|
||||
RDATE:19960407T020000
|
||||
RDATE:19970406T020000
|
||||
RDATE:19980405T020000
|
||||
RDATE:19990404T020000
|
||||
RDATE:20000402T020000
|
||||
RDATE:20010401T020000
|
||||
RDATE:20020407T020000
|
||||
RDATE:20030406T020000
|
||||
RDATE:20040404T020000
|
||||
RDATE:20050403T020000
|
||||
RDATE:20060402T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:MST
|
||||
DTSTART:19181027T020000
|
||||
RDATE:19181027T020000
|
||||
RDATE:19191026T020000
|
||||
RDATE:19201031T020000
|
||||
RDATE:19210522T020000
|
||||
RDATE:19450930T020000
|
||||
RDATE:19651031T020000
|
||||
RDATE:19661030T020000
|
||||
RDATE:19671029T020000
|
||||
RDATE:19681027T020000
|
||||
RDATE:19691026T020000
|
||||
RDATE:19701025T020000
|
||||
RDATE:19711031T020000
|
||||
RDATE:19721029T020000
|
||||
RDATE:19731028T020000
|
||||
RDATE:19741027T020000
|
||||
RDATE:19751026T020000
|
||||
RDATE:19761031T020000
|
||||
RDATE:19771030T020000
|
||||
RDATE:19781029T020000
|
||||
RDATE:19791028T020000
|
||||
RDATE:19801026T020000
|
||||
RDATE:19811025T020000
|
||||
RDATE:19821031T020000
|
||||
RDATE:19831030T020000
|
||||
RDATE:19841028T020000
|
||||
RDATE:19851027T020000
|
||||
RDATE:19861026T020000
|
||||
RDATE:19871025T020000
|
||||
RDATE:19881030T020000
|
||||
RDATE:19891029T020000
|
||||
RDATE:19901028T020000
|
||||
RDATE:19911027T020000
|
||||
RDATE:19921025T020000
|
||||
RDATE:19931031T020000
|
||||
RDATE:19941030T020000
|
||||
RDATE:19951029T020000
|
||||
RDATE:19961027T020000
|
||||
RDATE:19971026T020000
|
||||
RDATE:19981025T020000
|
||||
RDATE:19991031T020000
|
||||
RDATE:20001029T020000
|
||||
RDATE:20011028T020000
|
||||
RDATE:20021027T020000
|
||||
RDATE:20031026T020000
|
||||
RDATE:20041031T020000
|
||||
RDATE:20051030T020000
|
||||
RDATE:20061029T020000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:MST
|
||||
DTSTART:19200101T000000
|
||||
RDATE:19200101T000000
|
||||
RDATE:19420101T000000
|
||||
RDATE:19460101T000000
|
||||
RDATE:19670101T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:MWT
|
||||
DTSTART:19420209T020000
|
||||
RDATE:19420209T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:MPT
|
||||
DTSTART:19450814T170000
|
||||
RDATE:19450814T170000
|
||||
END:DAYLIGHT
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
145
vzic/zoneinfo/America/Detroit.ics
Normal file
145
vzic/zoneinfo/America/Detroit.ics
Normal file
|
@ -0,0 +1,145 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Detroit
|
||||
X-LIC-LOCATION:America/Detroit
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0400
|
||||
TZNAME:EDT
|
||||
DTSTART:20070311T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:EST
|
||||
DTSTART:20071104T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-053211
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:CST
|
||||
DTSTART:19050101T000000
|
||||
RDATE:19050101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:EST
|
||||
DTSTART:19150515T020000
|
||||
RDATE:19150515T020000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:EST
|
||||
DTSTART:19420101T000000
|
||||
RDATE:19420101T000000
|
||||
RDATE:19460101T000000
|
||||
RDATE:19730101T000000
|
||||
RDATE:19750101T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0400
|
||||
TZNAME:EWT
|
||||
DTSTART:19420209T020000
|
||||
RDATE:19420209T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0400
|
||||
TZNAME:EPT
|
||||
DTSTART:19450814T190000
|
||||
RDATE:19450814T190000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:EST
|
||||
DTSTART:19450930T020000
|
||||
RDATE:19450930T020000
|
||||
RDATE:19480926T020000
|
||||
RDATE:19671029T020000
|
||||
RDATE:19731028T020000
|
||||
RDATE:19741027T020000
|
||||
RDATE:19751026T020000
|
||||
RDATE:19761031T020000
|
||||
RDATE:19771030T020000
|
||||
RDATE:19781029T020000
|
||||
RDATE:19791028T020000
|
||||
RDATE:19801026T020000
|
||||
RDATE:19811025T020000
|
||||
RDATE:19821031T020000
|
||||
RDATE:19831030T020000
|
||||
RDATE:19841028T020000
|
||||
RDATE:19851027T020000
|
||||
RDATE:19861026T020000
|
||||
RDATE:19871025T020000
|
||||
RDATE:19881030T020000
|
||||
RDATE:19891029T020000
|
||||
RDATE:19901028T020000
|
||||
RDATE:19911027T020000
|
||||
RDATE:19921025T020000
|
||||
RDATE:19931031T020000
|
||||
RDATE:19941030T020000
|
||||
RDATE:19951029T020000
|
||||
RDATE:19961027T020000
|
||||
RDATE:19971026T020000
|
||||
RDATE:19981025T020000
|
||||
RDATE:19991031T020000
|
||||
RDATE:20001029T020000
|
||||
RDATE:20011028T020000
|
||||
RDATE:20021027T020000
|
||||
RDATE:20031026T020000
|
||||
RDATE:20041031T020000
|
||||
RDATE:20051030T020000
|
||||
RDATE:20061029T020000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0400
|
||||
TZNAME:EDT
|
||||
DTSTART:19480425T020000
|
||||
RDATE:19480425T020000
|
||||
RDATE:19670614T020000
|
||||
RDATE:19730429T020000
|
||||
RDATE:19740106T020000
|
||||
RDATE:19750427T020000
|
||||
RDATE:19760425T020000
|
||||
RDATE:19770424T020000
|
||||
RDATE:19780430T020000
|
||||
RDATE:19790429T020000
|
||||
RDATE:19800427T020000
|
||||
RDATE:19810426T020000
|
||||
RDATE:19820425T020000
|
||||
RDATE:19830424T020000
|
||||
RDATE:19840429T020000
|
||||
RDATE:19850428T020000
|
||||
RDATE:19860427T020000
|
||||
RDATE:19870405T020000
|
||||
RDATE:19880403T020000
|
||||
RDATE:19890402T020000
|
||||
RDATE:19900401T020000
|
||||
RDATE:19910407T020000
|
||||
RDATE:19920405T020000
|
||||
RDATE:19930404T020000
|
||||
RDATE:19940403T020000
|
||||
RDATE:19950402T020000
|
||||
RDATE:19960407T020000
|
||||
RDATE:19970406T020000
|
||||
RDATE:19980405T020000
|
||||
RDATE:19990404T020000
|
||||
RDATE:20000402T020000
|
||||
RDATE:20010401T020000
|
||||
RDATE:20020407T020000
|
||||
RDATE:20030406T020000
|
||||
RDATE:20040404T020000
|
||||
RDATE:20050403T020000
|
||||
RDATE:20060402T020000
|
||||
END:DAYLIGHT
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
15
vzic/zoneinfo/America/Dominica.ics
Normal file
15
vzic/zoneinfo/America/Dominica.ics
Normal file
|
@ -0,0 +1,15 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Dominica
|
||||
X-LIC-LOCATION:America/Dominica
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-040536
|
||||
TZOFFSETTO:-0400
|
||||
TZNAME:AST
|
||||
DTSTART:19110701T000100
|
||||
RDATE:19110701T000100
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
151
vzic/zoneinfo/America/Edmonton.ics
Normal file
151
vzic/zoneinfo/America/Edmonton.ics
Normal file
|
@ -0,0 +1,151 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Edmonton
|
||||
X-LIC-LOCATION:America/Edmonton
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:MDT
|
||||
DTSTART:20070311T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:MST
|
||||
DTSTART:20071104T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-073352
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:MST
|
||||
DTSTART:19060901T000000
|
||||
RDATE:19060901T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:MDT
|
||||
DTSTART:19180414T020000
|
||||
RDATE:19180414T020000
|
||||
RDATE:19190413T020000
|
||||
RDATE:19200425T020000
|
||||
RDATE:19210424T020000
|
||||
RDATE:19220430T020000
|
||||
RDATE:19230429T020000
|
||||
RDATE:19470427T020000
|
||||
RDATE:19670430T020000
|
||||
RDATE:19690427T020000
|
||||
RDATE:19720430T020000
|
||||
RDATE:19730429T020000
|
||||
RDATE:19740428T020000
|
||||
RDATE:19750427T020000
|
||||
RDATE:19760425T020000
|
||||
RDATE:19770424T020000
|
||||
RDATE:19780430T020000
|
||||
RDATE:19790429T020000
|
||||
RDATE:19800427T020000
|
||||
RDATE:19810426T020000
|
||||
RDATE:19820425T020000
|
||||
RDATE:19830424T020000
|
||||
RDATE:19840429T020000
|
||||
RDATE:19850428T020000
|
||||
RDATE:19860427T020000
|
||||
RDATE:19870405T020000
|
||||
RDATE:19880403T020000
|
||||
RDATE:19890402T020000
|
||||
RDATE:19900401T020000
|
||||
RDATE:19910407T020000
|
||||
RDATE:19920405T020000
|
||||
RDATE:19930404T020000
|
||||
RDATE:19940403T020000
|
||||
RDATE:19950402T020000
|
||||
RDATE:19960407T020000
|
||||
RDATE:19970406T020000
|
||||
RDATE:19980405T020000
|
||||
RDATE:19990404T020000
|
||||
RDATE:20000402T020000
|
||||
RDATE:20010401T020000
|
||||
RDATE:20020407T020000
|
||||
RDATE:20030406T020000
|
||||
RDATE:20040404T020000
|
||||
RDATE:20050403T020000
|
||||
RDATE:20060402T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:MST
|
||||
DTSTART:19181031T020000
|
||||
RDATE:19181031T020000
|
||||
RDATE:19190527T020000
|
||||
RDATE:19201031T020000
|
||||
RDATE:19210925T020000
|
||||
RDATE:19220924T020000
|
||||
RDATE:19230930T020000
|
||||
RDATE:19450930T020000
|
||||
RDATE:19470928T020000
|
||||
RDATE:19671029T020000
|
||||
RDATE:19691026T020000
|
||||
RDATE:19721029T020000
|
||||
RDATE:19731028T020000
|
||||
RDATE:19741027T020000
|
||||
RDATE:19751026T020000
|
||||
RDATE:19761031T020000
|
||||
RDATE:19771030T020000
|
||||
RDATE:19781029T020000
|
||||
RDATE:19791028T020000
|
||||
RDATE:19801026T020000
|
||||
RDATE:19811025T020000
|
||||
RDATE:19821031T020000
|
||||
RDATE:19831030T020000
|
||||
RDATE:19841028T020000
|
||||
RDATE:19851027T020000
|
||||
RDATE:19861026T020000
|
||||
RDATE:19871025T020000
|
||||
RDATE:19881030T020000
|
||||
RDATE:19891029T020000
|
||||
RDATE:19901028T020000
|
||||
RDATE:19911027T020000
|
||||
RDATE:19921025T020000
|
||||
RDATE:19931031T020000
|
||||
RDATE:19941030T020000
|
||||
RDATE:19951029T020000
|
||||
RDATE:19961027T020000
|
||||
RDATE:19971026T020000
|
||||
RDATE:19981025T020000
|
||||
RDATE:19991031T020000
|
||||
RDATE:20001029T020000
|
||||
RDATE:20011028T020000
|
||||
RDATE:20021027T020000
|
||||
RDATE:20031026T020000
|
||||
RDATE:20041031T020000
|
||||
RDATE:20051030T020000
|
||||
RDATE:20061029T020000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:MWT
|
||||
DTSTART:19420209T020000
|
||||
RDATE:19420209T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:MPT
|
||||
DTSTART:19450814T170000
|
||||
RDATE:19450814T170000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:MST
|
||||
DTSTART:19870101T000000
|
||||
RDATE:19870101T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
31
vzic/zoneinfo/America/El_Salvador.ics
Normal file
31
vzic/zoneinfo/America/El_Salvador.ics
Normal file
|
@ -0,0 +1,31 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/El_Salvador
|
||||
X-LIC-LOCATION:America/El_Salvador
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-055648
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:CST
|
||||
DTSTART:19210101T000000
|
||||
RDATE:19210101T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0600
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:CDT
|
||||
DTSTART:19870503T000000
|
||||
RDATE:19870503T000000
|
||||
RDATE:19880501T000000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0600
|
||||
TZNAME:CST
|
||||
DTSTART:19870927T000000
|
||||
RDATE:19870927T000000
|
||||
RDATE:19880925T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
140
vzic/zoneinfo/America/Glace_Bay.ics
Normal file
140
vzic/zoneinfo/America/Glace_Bay.ics
Normal file
|
@ -0,0 +1,140 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Glace_Bay
|
||||
X-LIC-LOCATION:America/Glace_Bay
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0300
|
||||
TZNAME:ADT
|
||||
DTSTART:20070311T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0400
|
||||
TZNAME:AST
|
||||
DTSTART:20071104T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-035948
|
||||
TZOFFSETTO:-0400
|
||||
TZNAME:AST
|
||||
DTSTART:19020615T000000
|
||||
RDATE:19020615T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0300
|
||||
TZNAME:ADT
|
||||
DTSTART:19180414T020000
|
||||
RDATE:19180414T020000
|
||||
RDATE:19530426T020000
|
||||
RDATE:19720430T020000
|
||||
RDATE:19730429T020000
|
||||
RDATE:19740428T020000
|
||||
RDATE:19750427T020000
|
||||
RDATE:19760425T020000
|
||||
RDATE:19770424T020000
|
||||
RDATE:19780430T020000
|
||||
RDATE:19790429T020000
|
||||
RDATE:19800427T020000
|
||||
RDATE:19810426T020000
|
||||
RDATE:19820425T020000
|
||||
RDATE:19830424T020000
|
||||
RDATE:19840429T020000
|
||||
RDATE:19850428T020000
|
||||
RDATE:19860427T020000
|
||||
RDATE:19870405T020000
|
||||
RDATE:19880403T020000
|
||||
RDATE:19890402T020000
|
||||
RDATE:19900401T020000
|
||||
RDATE:19910407T020000
|
||||
RDATE:19920405T020000
|
||||
RDATE:19930404T020000
|
||||
RDATE:19940403T020000
|
||||
RDATE:19950402T020000
|
||||
RDATE:19960407T020000
|
||||
RDATE:19970406T020000
|
||||
RDATE:19980405T020000
|
||||
RDATE:19990404T020000
|
||||
RDATE:20000402T020000
|
||||
RDATE:20010401T020000
|
||||
RDATE:20020407T020000
|
||||
RDATE:20030406T020000
|
||||
RDATE:20040404T020000
|
||||
RDATE:20050403T020000
|
||||
RDATE:20060402T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0400
|
||||
TZNAME:AST
|
||||
DTSTART:19181031T020000
|
||||
RDATE:19181031T020000
|
||||
RDATE:19450930T020000
|
||||
RDATE:19530927T020000
|
||||
RDATE:19721029T020000
|
||||
RDATE:19731028T020000
|
||||
RDATE:19741027T020000
|
||||
RDATE:19751026T020000
|
||||
RDATE:19761031T020000
|
||||
RDATE:19771030T020000
|
||||
RDATE:19781029T020000
|
||||
RDATE:19791028T020000
|
||||
RDATE:19801026T020000
|
||||
RDATE:19811025T020000
|
||||
RDATE:19821031T020000
|
||||
RDATE:19831030T020000
|
||||
RDATE:19841028T020000
|
||||
RDATE:19851027T020000
|
||||
RDATE:19861026T020000
|
||||
RDATE:19871025T020000
|
||||
RDATE:19881030T020000
|
||||
RDATE:19891029T020000
|
||||
RDATE:19901028T020000
|
||||
RDATE:19911027T020000
|
||||
RDATE:19921025T020000
|
||||
RDATE:19931031T020000
|
||||
RDATE:19941030T020000
|
||||
RDATE:19951029T020000
|
||||
RDATE:19961027T020000
|
||||
RDATE:19971026T020000
|
||||
RDATE:19981025T020000
|
||||
RDATE:19991031T020000
|
||||
RDATE:20001029T020000
|
||||
RDATE:20011028T020000
|
||||
RDATE:20021027T020000
|
||||
RDATE:20031026T020000
|
||||
RDATE:20041031T020000
|
||||
RDATE:20051030T020000
|
||||
RDATE:20061029T020000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0300
|
||||
TZNAME:AWT
|
||||
DTSTART:19420209T020000
|
||||
RDATE:19420209T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0300
|
||||
TZNAME:APT
|
||||
DTSTART:19450814T200000
|
||||
RDATE:19450814T200000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0400
|
||||
TZNAME:AST
|
||||
DTSTART:19530101T000000
|
||||
RDATE:19530101T000000
|
||||
RDATE:19540101T000000
|
||||
RDATE:19720101T000000
|
||||
RDATE:19740101T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
58
vzic/zoneinfo/America/Godthab.ics
Normal file
58
vzic/zoneinfo/America/Godthab.ics
Normal file
|
@ -0,0 +1,58 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Godthab
|
||||
X-LIC-LOCATION:America/Godthab
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0200
|
||||
TZNAME:WGST
|
||||
DTSTART:19810328T220000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=3;BYMONTHDAY=24,25,26,27,28,29,30;BYDAY=SA
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0200
|
||||
TZOFFSETTO:-0300
|
||||
TZNAME:WGT
|
||||
DTSTART:19961026T230000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=24,25,26,27,28,29,30;BYDAY=SA
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-032656
|
||||
TZOFFSETTO:-0300
|
||||
TZNAME:WGT
|
||||
DTSTART:19160728T000000
|
||||
RDATE:19160728T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0200
|
||||
TZNAME:WGST
|
||||
DTSTART:19800406T020000
|
||||
RDATE:19800406T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0200
|
||||
TZOFFSETTO:-0300
|
||||
TZNAME:WGT
|
||||
DTSTART:19800927T230000
|
||||
RDATE:19800927T230000
|
||||
RDATE:19810926T230000
|
||||
RDATE:19820925T230000
|
||||
RDATE:19830924T230000
|
||||
RDATE:19840929T230000
|
||||
RDATE:19850928T230000
|
||||
RDATE:19860927T230000
|
||||
RDATE:19870926T230000
|
||||
RDATE:19880924T230000
|
||||
RDATE:19890923T230000
|
||||
RDATE:19900929T230000
|
||||
RDATE:19910928T230000
|
||||
RDATE:19920926T230000
|
||||
RDATE:19930925T230000
|
||||
RDATE:19940924T230000
|
||||
RDATE:19950923T230000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
274
vzic/zoneinfo/America/Goose_Bay.ics
Normal file
274
vzic/zoneinfo/America/Goose_Bay.ics
Normal file
|
@ -0,0 +1,274 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Goose_Bay
|
||||
X-LIC-LOCATION:America/Goose_Bay
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0400
|
||||
TZNAME:AST
|
||||
DTSTART:20111106T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0300
|
||||
TZNAME:ADT
|
||||
DTSTART:20120311T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-040140
|
||||
TZOFFSETTO:-033052
|
||||
TZNAME:NST
|
||||
DTSTART:18840101T000000
|
||||
RDATE:18840101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-033052
|
||||
TZOFFSETTO:-033052
|
||||
TZNAME:NST
|
||||
DTSTART:19180101T000000
|
||||
RDATE:19180101T000000
|
||||
RDATE:19190101T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-033052
|
||||
TZOFFSETTO:-023052
|
||||
TZNAME:NDT
|
||||
DTSTART:19180414T020000
|
||||
RDATE:19180414T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-023052
|
||||
TZOFFSETTO:-033052
|
||||
TZNAME:NST
|
||||
DTSTART:19181031T020000
|
||||
RDATE:19181031T020000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-033052
|
||||
TZOFFSETTO:-0330
|
||||
TZNAME:NST
|
||||
DTSTART:19350330T000000
|
||||
RDATE:19350330T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0330
|
||||
TZOFFSETTO:-0330
|
||||
TZNAME:NST
|
||||
DTSTART:19360101T000000
|
||||
RDATE:19360101T000000
|
||||
RDATE:19460101T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0330
|
||||
TZOFFSETTO:-0230
|
||||
TZNAME:NDT
|
||||
DTSTART:19360511T000000
|
||||
RDATE:19360511T000000
|
||||
RDATE:19370510T000000
|
||||
RDATE:19380509T000000
|
||||
RDATE:19390515T000000
|
||||
RDATE:19400513T000000
|
||||
RDATE:19410512T000000
|
||||
RDATE:19460512T020000
|
||||
RDATE:19470511T020000
|
||||
RDATE:19480509T020000
|
||||
RDATE:19490508T020000
|
||||
RDATE:19500514T020000
|
||||
RDATE:19510429T020000
|
||||
RDATE:19520427T020000
|
||||
RDATE:19530426T020000
|
||||
RDATE:19540425T020000
|
||||
RDATE:19550424T020000
|
||||
RDATE:19560429T020000
|
||||
RDATE:19570428T020000
|
||||
RDATE:19580427T020000
|
||||
RDATE:19590426T020000
|
||||
RDATE:19600424T020000
|
||||
RDATE:19610430T020000
|
||||
RDATE:19620429T020000
|
||||
RDATE:19630428T020000
|
||||
RDATE:19640426T020000
|
||||
RDATE:19650425T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0230
|
||||
TZOFFSETTO:-0330
|
||||
TZNAME:NST
|
||||
DTSTART:19361005T000000
|
||||
RDATE:19361005T000000
|
||||
RDATE:19371004T000000
|
||||
RDATE:19381003T000000
|
||||
RDATE:19391002T000000
|
||||
RDATE:19401007T000000
|
||||
RDATE:19411006T000000
|
||||
RDATE:19450930T020000
|
||||
RDATE:19461006T020000
|
||||
RDATE:19471005T020000
|
||||
RDATE:19481003T020000
|
||||
RDATE:19491002T020000
|
||||
RDATE:19501008T020000
|
||||
RDATE:19510930T020000
|
||||
RDATE:19520928T020000
|
||||
RDATE:19530927T020000
|
||||
RDATE:19540926T020000
|
||||
RDATE:19550925T020000
|
||||
RDATE:19560930T020000
|
||||
RDATE:19570929T020000
|
||||
RDATE:19580928T020000
|
||||
RDATE:19590927T020000
|
||||
RDATE:19601030T020000
|
||||
RDATE:19611029T020000
|
||||
RDATE:19621028T020000
|
||||
RDATE:19631027T020000
|
||||
RDATE:19641025T020000
|
||||
RDATE:19651031T020000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0330
|
||||
TZOFFSETTO:-0230
|
||||
TZNAME:NWT
|
||||
DTSTART:19420511T000000
|
||||
RDATE:19420511T000000
|
||||
END:DAYLIGHT
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0230
|
||||
TZOFFSETTO:-0230
|
||||
TZNAME:NPT
|
||||
DTSTART:19450814T203000
|
||||
RDATE:19450814T203000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0330
|
||||
TZOFFSETTO:-0400
|
||||
TZNAME:AST
|
||||
DTSTART:19660315T020000
|
||||
RDATE:19660315T020000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0300
|
||||
TZNAME:ADT
|
||||
DTSTART:19660424T020000
|
||||
RDATE:19660424T020000
|
||||
RDATE:19670430T020000
|
||||
RDATE:19680428T020000
|
||||
RDATE:19690427T020000
|
||||
RDATE:19700426T020000
|
||||
RDATE:19710425T020000
|
||||
RDATE:19720430T020000
|
||||
RDATE:19730429T020000
|
||||
RDATE:19740428T020000
|
||||
RDATE:19750427T020000
|
||||
RDATE:19760425T020000
|
||||
RDATE:19770424T020000
|
||||
RDATE:19780430T020000
|
||||
RDATE:19790429T020000
|
||||
RDATE:19800427T020000
|
||||
RDATE:19810426T020000
|
||||
RDATE:19820425T020000
|
||||
RDATE:19830424T020000
|
||||
RDATE:19840429T020000
|
||||
RDATE:19850428T020000
|
||||
RDATE:19860427T020000
|
||||
RDATE:19870405T000100
|
||||
RDATE:19890402T000100
|
||||
RDATE:19900401T000100
|
||||
RDATE:19910407T000100
|
||||
RDATE:19920405T000100
|
||||
RDATE:19930404T000100
|
||||
RDATE:19940403T000100
|
||||
RDATE:19950402T000100
|
||||
RDATE:19960407T000100
|
||||
RDATE:19970406T000100
|
||||
RDATE:19980405T000100
|
||||
RDATE:19990404T000100
|
||||
RDATE:20000402T000100
|
||||
RDATE:20010401T000100
|
||||
RDATE:20020407T000100
|
||||
RDATE:20030406T000100
|
||||
RDATE:20040404T000100
|
||||
RDATE:20050403T000100
|
||||
RDATE:20060402T000100
|
||||
RDATE:20070311T000100
|
||||
RDATE:20080309T000100
|
||||
RDATE:20090308T000100
|
||||
RDATE:20100314T000100
|
||||
RDATE:20110313T000100
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0400
|
||||
TZNAME:AST
|
||||
DTSTART:19661030T020000
|
||||
RDATE:19661030T020000
|
||||
RDATE:19671029T020000
|
||||
RDATE:19681027T020000
|
||||
RDATE:19691026T020000
|
||||
RDATE:19701025T020000
|
||||
RDATE:19711031T020000
|
||||
RDATE:19721029T020000
|
||||
RDATE:19731028T020000
|
||||
RDATE:19741027T020000
|
||||
RDATE:19751026T020000
|
||||
RDATE:19761031T020000
|
||||
RDATE:19771030T020000
|
||||
RDATE:19781029T020000
|
||||
RDATE:19791028T020000
|
||||
RDATE:19801026T020000
|
||||
RDATE:19811025T020000
|
||||
RDATE:19821031T020000
|
||||
RDATE:19831030T020000
|
||||
RDATE:19841028T020000
|
||||
RDATE:19851027T020000
|
||||
RDATE:19861026T020000
|
||||
RDATE:19871025T000100
|
||||
RDATE:19891029T000100
|
||||
RDATE:19901028T000100
|
||||
RDATE:19911027T000100
|
||||
RDATE:19921025T000100
|
||||
RDATE:19931031T000100
|
||||
RDATE:19941030T000100
|
||||
RDATE:19951029T000100
|
||||
RDATE:19961027T000100
|
||||
RDATE:19971026T000100
|
||||
RDATE:19981025T000100
|
||||
RDATE:19991031T000100
|
||||
RDATE:20001029T000100
|
||||
RDATE:20011028T000100
|
||||
RDATE:20021027T000100
|
||||
RDATE:20031026T000100
|
||||
RDATE:20041031T000100
|
||||
RDATE:20051030T000100
|
||||
RDATE:20061029T000100
|
||||
RDATE:20071104T000100
|
||||
RDATE:20081102T000100
|
||||
RDATE:20091101T000100
|
||||
RDATE:20101107T000100
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0200
|
||||
TZNAME:ADDT
|
||||
DTSTART:19880403T000100
|
||||
RDATE:19880403T000100
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0200
|
||||
TZOFFSETTO:-0400
|
||||
TZNAME:AST
|
||||
DTSTART:19881030T000100
|
||||
RDATE:19881030T000100
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0300
|
||||
TZNAME:ADT
|
||||
DTSTART:20111101T000000
|
||||
RDATE:20111101T000000
|
||||
END:DAYLIGHT
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
104
vzic/zoneinfo/America/Grand_Turk.ics
Normal file
104
vzic/zoneinfo/America/Grand_Turk.ics
Normal file
|
@ -0,0 +1,104 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Grand_Turk
|
||||
X-LIC-LOCATION:America/Grand_Turk
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0400
|
||||
TZNAME:EDT
|
||||
DTSTART:20070311T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:EST
|
||||
DTSTART:20071104T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-044432
|
||||
TZOFFSETTO:-050712
|
||||
TZNAME:KMT
|
||||
DTSTART:18900101T000000
|
||||
RDATE:18900101T000000
|
||||
END:STANDARD
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-050712
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:EST
|
||||
DTSTART:19120201T000000
|
||||
RDATE:19120201T000000
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0400
|
||||
TZNAME:EDT
|
||||
DTSTART:19790429T020000
|
||||
RDATE:19790429T020000
|
||||
RDATE:19800427T020000
|
||||
RDATE:19810426T020000
|
||||
RDATE:19820425T020000
|
||||
RDATE:19830424T020000
|
||||
RDATE:19840429T020000
|
||||
RDATE:19850428T020000
|
||||
RDATE:19860427T020000
|
||||
RDATE:19870405T020000
|
||||
RDATE:19880403T020000
|
||||
RDATE:19890402T020000
|
||||
RDATE:19900401T020000
|
||||
RDATE:19910407T020000
|
||||
RDATE:19920405T020000
|
||||
RDATE:19930404T020000
|
||||
RDATE:19940403T020000
|
||||
RDATE:19950402T020000
|
||||
RDATE:19960407T020000
|
||||
RDATE:19970406T020000
|
||||
RDATE:19980405T020000
|
||||
RDATE:19990404T020000
|
||||
RDATE:20000402T020000
|
||||
RDATE:20010401T020000
|
||||
RDATE:20020407T020000
|
||||
RDATE:20030406T020000
|
||||
RDATE:20040404T020000
|
||||
RDATE:20050403T020000
|
||||
RDATE:20060402T020000
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0500
|
||||
TZNAME:EST
|
||||
DTSTART:19791028T020000
|
||||
RDATE:19791028T020000
|
||||
RDATE:19801026T020000
|
||||
RDATE:19811025T020000
|
||||
RDATE:19821031T020000
|
||||
RDATE:19831030T020000
|
||||
RDATE:19841028T020000
|
||||
RDATE:19851027T020000
|
||||
RDATE:19861026T020000
|
||||
RDATE:19871025T020000
|
||||
RDATE:19881030T020000
|
||||
RDATE:19891029T020000
|
||||
RDATE:19901028T020000
|
||||
RDATE:19911027T020000
|
||||
RDATE:19921025T020000
|
||||
RDATE:19931031T020000
|
||||
RDATE:19941030T020000
|
||||
RDATE:19951029T020000
|
||||
RDATE:19961027T020000
|
||||
RDATE:19971026T020000
|
||||
RDATE:19981025T020000
|
||||
RDATE:19991031T020000
|
||||
RDATE:20001029T020000
|
||||
RDATE:20011028T020000
|
||||
RDATE:20021027T020000
|
||||
RDATE:20031026T020000
|
||||
RDATE:20041031T020000
|
||||
RDATE:20051030T020000
|
||||
RDATE:20061029T020000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
15
vzic/zoneinfo/America/Grenada.ics
Normal file
15
vzic/zoneinfo/America/Grenada.ics
Normal file
|
@ -0,0 +1,15 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//IETF Tools//NONSGML ietf-agenda-ical 1.03//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:/tools.ietf.org/Olson_20110927_1/America/Grenada
|
||||
X-LIC-LOCATION:America/Grenada
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0407
|
||||
TZOFFSETTO:-0400
|
||||
TZNAME:AST
|
||||
DTSTART:19110701T000000
|
||||
RDATE:19110701T000000
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue