* @package Timezone
*/
class Horde_Timezone
{
/**
* Any configuration parameters for this class.
*
* @var array
*/
protected $_params;
/**
* File location of the downloaded timezone database.
*
* @var string
*/
protected $_tmpfile;
/**
* List of all Zone entries parsed into Horde_Timezone_Zone objects.
*
* @var array
*/
protected $_zones = array();
/**
* List of all Rule entries parsed into Horde_Timezone_Rule objects.
*
* @var array
*/
protected $_rules = array();
/**
* Alias map of all Link entries.
*
* @var array
*/
protected $_links = array();
/**
* List to map month descriptions used in the timezone database.
*
* @var array
*/
protected static $_months = array('Jan' => 1,
'Feb' => 2,
'Mar' => 3,
'Apr' => 4,
'May' => 5,
'Jun' => 6,
'Jul' => 7,
'Aug' => 8,
'Sep' => 9,
'Oct' => 10,
'Nov' => 11,
'Dec' => 12);
/**
* Constructor.
*
* @param array $params List of optional class parameters. Possible
* options:
* - location: (string) Location of the timezone
* database, defaults to
* ftp.iana.org/tz/tzdata-latest.tar.gz.
* - client: (Horde_Http_Client) A preconfigured
* HTTP client for downloading via HTTP.
* - temp: (string) Temporary directory.
* - cache: (Horde_Cache) A cache object.
* - cachettl: (integer) Cache lifetime in seconds,
* defaults to 7 days.
*/
public function __construct(array $params = array())
{
$this->_params = array_merge(
array('location' => 'ftp://ftp.iana.org/tz/tzdata-latest.tar.gz',
'cachettl' => 604800),
$params);
}
/**
* Returns the month number of a month name.
*
* @param string $month A month name.
*
* @return integer The month's number.
*/
public static function getMonth($month)
{
return self::$_months[substr($month, 0, 3)];
}
/**
* Returns an object representing an invidual timezone.
*
* Maps to a "Zone" entry in the timezone database. Works with
* zone aliases too.
*
* @param string $zone A timezone name.
*
* @return Horde_Timezone_Zone A timezone object.
*/
public function getZone($zone)
{
if (!$this->_zones) {
$this->_extractAndParse();
}
$alias = isset($this->_links[$zone]) ? $this->_links[$zone] : $zone;
if (!isset($this->_zones[$alias])) {
throw new Horde_Timezone_Exception(sprintf('Timezone %s not found', $zone));
}
$this->_zones[$alias]->setTzid($zone);
return $this->_zones[$alias];
}
/**
* Returns an object representing a set of named transition rules.
*
* Maps to a list Rule entries of the same name in the timezone database.
*
* @param string $rule A rule name.
*
* @return Horde_Timezone_Rule A rule object.
*/
public function getRule($rule)
{
if (!$this->_rules) {
$this->_extractAndParse();
}
if (!isset($this->_rules[$rule])) {
throw new Horde_Timezone_Exception(sprintf('Timezone rule %s not found', $rule));
}
return $this->_rules[$rule];
}
/**
* Downloads a timezone database.
*
* @throws Horde_Timezone_Exception if downloading fails.
*/
protected function _download()
{
$url = @parse_url($this->_params['location']);
if (!isset($url['scheme'])) {
throw new Horde_Timezone_Exception('"location" parameter is missing an URL scheme.');
}
if (!in_array($url['scheme'], array('http', 'ftp', 'file'))) {
throw new Horde_Timezone_Exception(sprintf('Unsupported URL scheme "%s"', $url['scheme']));
}
if ($url['scheme'] == 'http') {
if (isset($this->_params['client'])) {
$client = $this->_params['client'];
} else {
$client = new Horde_Http_Client();
}
$response = $client->get($this->_params['location']);
$this->_tmpfile = Horde_Util::getTempFile(
'', true,
isset($this->_params['temp']) ? $this->_params['temp'] : '');
stream_copy_to_stream($response->getStream(), fopen($this->_tmpfile, 'w'));
return;
}
if ($url['scheme'] == 'ftp') {
try {
$vfs = new Horde_Vfs_Ftp(array('hostspec' => $url['host'],
'username' => 'anonymous',
'password' => 'anonymous',
'pasv' => true));
$this->_tmpfile = $vfs->readFile(dirname($url['path']),
basename($url['path']));
} catch (Horde_Vfs_Exception $e) {
throw new Horde_Timezone_Exception($e);
}
} else {
$this->_tmpfile = $this->_params['location'];
if (!is_readable($this->_tmpfile)) {
$e = new Horde_Timezone_Exception(sprintf('Unable to open file %s.', $this->_params['location']));
if (isset($php_errormsg)) {
$e->details = $php_errormsg;
}
throw $e;
}
}
}
/**
* Unpacks the downloaded timezone database and parses all files.
*/
protected function _extractAndParse()
{
if (isset($this->_params['cache'])) {
$result = @unserialize(
$this->_params['cache']->get(
'horde_timezone',
$this->_params['cachettl'])
);
if ($result) {
$this->_zones = $result['zones'];
$this->_rules = $result['rules'];
$this->_links = $result['links'];
return;
}
}
if (!$this->_tmpfile) {
$this->_download();
}
$tar = new Archive_Tar($this->_tmpfile);
foreach ($tar->listContent() as $file) {
if ($file['typeflag'] != 0) {
continue;
}
$this->_parse($tar->extractInString($file['filename']));
}
if (isset($this->_params['cache'])) {
$this->_params['cache']->set(
'horde_timezone',
serialize(array(
'zones' => $this->_zones,
'rules' => $this->_rules,
'links' => $this->_links
)),
$this->_params['cachettl']);
}
}
/**
* Parses a file from the timezone database.
*
* @param string $file A file location.
*/
protected function _parse($file)
{
$stream = new Horde_Support_StringStream($file);
$fp = $stream->fopen();
$zone = null;
while (($line = fgets($fp)) !== false) {
$line = trim($line);
if (!strlen($line) || $line[0] == '#') {
continue;
}
$column = preg_split('/\s+/', preg_replace('/\s*#.*$/', '', $line));
switch ($column[0]) {
case 'Rule':
if (!isset($this->_rules[$column[1]])) {
$this->_rules[$column[1]] = new Horde_Timezone_Rule($column[1]);
}
$this->_rules[$column[1]]->add($column);
$zone = null;
break;
case 'Link':
$this->_links[$column[2]] = $column[1];
$zone = null;
break;
case 'Zone':
$zone = $column[1];
$this->_zones[$zone] = new Horde_Timezone_Zone($zone, $this);
array_splice($column, 0, 2);
// Fall through.
default:
if (empty($zone) || !isset($this->_zones[$zone])) {
break;
}
$this->_zones[$zone]->add($column);
break;
}
}
}
}
Horde_Timezone-1.0.10/test/Horde/Timezone/fixtures/budapest 0000664 0001750 0001750 00000014010 12654077701 022032 0 ustar jan jan ###############################################################################
# Europe
# EU rules are for the European Union, previously known as the EC, EEC,
# Common Market, etc.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule EU 1977 1980 - Apr Sun>=1 1:00u 1:00 S
Rule EU 1977 only - Sep lastSun 1:00u 0 -
Rule EU 1978 only - Oct 1 1:00u 0 -
Rule EU 1979 1995 - Sep lastSun 1:00u 0 -
Rule EU 1981 max - Mar lastSun 1:00u 1:00 S
Rule EU 1996 max - Oct lastSun 1:00u 0 -
# The most recent directive covers the years starting in 2002. See:
# Directive 2000/84/EC of the European Parliament and of the Council
# of 19 January 2001 on summer-time arrangements.
# http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:32000L0084:EN:NOT
# W-Eur differs from EU only in that W-Eur uses standard time.
Rule W-Eur 1977 1980 - Apr Sun>=1 1:00s 1:00 S
Rule W-Eur 1977 only - Sep lastSun 1:00s 0 -
Rule W-Eur 1978 only - Oct 1 1:00s 0 -
Rule W-Eur 1979 1995 - Sep lastSun 1:00s 0 -
Rule W-Eur 1981 max - Mar lastSun 1:00s 1:00 S
Rule W-Eur 1996 max - Oct lastSun 1:00s 0 -
# Older C-Eur rules are for convenience in the tables.
# From 1977 on, C-Eur differs from EU only in that C-Eur uses standard time.
Rule C-Eur 1916 only - Apr 30 23:00 1:00 S
Rule C-Eur 1916 only - Oct 1 1:00 0 -
Rule C-Eur 1917 1918 - Apr Mon>=15 2:00s 1:00 S
Rule C-Eur 1917 1918 - Sep Mon>=15 2:00s 0 -
Rule C-Eur 1940 only - Apr 1 2:00s 1:00 S
Rule C-Eur 1942 only - Nov 2 2:00s 0 -
Rule C-Eur 1943 only - Mar 29 2:00s 1:00 S
Rule C-Eur 1943 only - Oct 4 2:00s 0 -
Rule C-Eur 1944 1945 - Apr Mon>=1 2:00s 1:00 S
# Whitman gives 1944 Oct 7; go with Shanks & Pottenger.
Rule C-Eur 1944 only - Oct 2 2:00s 0 -
# From Jesper Nørgaard Welen (2008-07-13):
#
# I found what is probably a typo of 2:00 which should perhaps be 2:00s
# in the C-Eur rule from tz database version 2008d (this part was
# corrected in version 2008d). The circumstantial evidence is simply the
# tz database itself, as seen below:
#
# Zone Europe/Paris 0:09:21 - LMT 1891 Mar 15 0:01
# 0:00 France WE%sT 1945 Sep 16 3:00
#
# Zone Europe/Monaco 0:29:32 - LMT 1891 Mar 15
# 0:00 France WE%sT 1945 Sep 16 3:00
#
# Zone Europe/Belgrade 1:22:00 - LMT 1884
# 1:00 1:00 CEST 1945 Sep 16 2:00s
#
# Rule France 1945 only - Sep 16 3:00 0 -
# Rule Belgium 1945 only - Sep 16 2:00s 0 -
# Rule Neth 1945 only - Sep 16 2:00s 0 -
#
# The rule line to be changed is:
#
# Rule C-Eur 1945 only - Sep 16 2:00 0 -
#
# It seems that Paris, Monaco, Rule France, Rule Belgium all agree on
# 2:00 standard time, e.g. 3:00 local time. However there are no
# countries that use C-Eur rules in September 1945, so the only items
# affected are apparently these fictitious zones that translate acronyms
# CET and MET:
#
# Zone CET 1:00 C-Eur CE%sT
# Zone MET 1:00 C-Eur ME%sT
#
# It this is right then the corrected version would look like:
#
# Rule C-Eur 1945 only - Sep 16 2:00s 0 -
#
# A small step for mankind though 8-)
Rule C-Eur 1945 only - Sep 16 2:00s 0 -
Rule C-Eur 1977 1980 - Apr Sun>=1 2:00s 1:00 S
Rule C-Eur 1977 only - Sep lastSun 2:00s 0 -
Rule C-Eur 1978 only - Oct 1 2:00s 0 -
Rule C-Eur 1979 1995 - Sep lastSun 2:00s 0 -
Rule C-Eur 1981 max - Mar lastSun 2:00s 1:00 S
Rule C-Eur 1996 max - Oct lastSun 2:00s 0 -
# E-Eur differs from EU only in that E-Eur switches at midnight local time.
Rule E-Eur 1977 1980 - Apr Sun>=1 0:00 1:00 S
Rule E-Eur 1977 only - Sep lastSun 0:00 0 -
Rule E-Eur 1978 only - Oct 1 0:00 0 -
Rule E-Eur 1979 1995 - Sep lastSun 0:00 0 -
Rule E-Eur 1981 max - Mar lastSun 0:00 1:00 S
Rule E-Eur 1996 max - Oct lastSun 0:00 0 -
# Hungary
# From Paul Eggert (2014-07-15):
# Dates for 1916-1945 are taken from:
# Oross A. Jelen a múlt jövője: a nyári időszámítás Magyarországon 1916-1945.
# National Archives of Hungary (2012-10-29).
# http://mnl.gov.hu/a_het_dokumentuma/a_nyari_idoszamitas_magyarorszagon_19161945.html
# This source does not always give times, which are taken from Shanks
# & Pottenger (which disagree about the dates).
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Hungary 1918 only - Apr 1 3:00 1:00 S
Rule Hungary 1918 only - Sep 16 3:00 0 -
Rule Hungary 1919 only - Apr 15 3:00 1:00 S
Rule Hungary 1919 only - Nov 24 3:00 0 -
Rule Hungary 1945 only - May 1 23:00 1:00 S
Rule Hungary 1945 only - Nov 1 0:00 0 -
Rule Hungary 1946 only - Mar 31 2:00s 1:00 S
Rule Hungary 1946 1949 - Oct Sun>=1 2:00s 0 -
Rule Hungary 1947 1949 - Apr Sun>=4 2:00s 1:00 S
Rule Hungary 1950 only - Apr 17 2:00s 1:00 S
Rule Hungary 1950 only - Oct 23 2:00s 0 -
Rule Hungary 1954 1955 - May 23 0:00 1:00 S
Rule Hungary 1954 1955 - Oct 3 0:00 0 -
Rule Hungary 1956 only - Jun Sun>=1 0:00 1:00 S
Rule Hungary 1956 only - Sep lastSun 0:00 0 -
Rule Hungary 1957 only - Jun Sun>=1 1:00 1:00 S
Rule Hungary 1957 only - Sep lastSun 3:00 0 -
Rule Hungary 1980 only - Apr 6 1:00 1:00 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Budapest 1:16:20 - LMT 1890 Oct
1:00 C-Eur CE%sT 1918
1:00 Hungary CE%sT 1941 Apr 8
1:00 C-Eur CE%sT 1945
1:00 Hungary CE%sT 1980 Sep 28 2:00s
1:00 EU CE%sT Horde_Timezone-1.0.10/test/Horde/Timezone/fixtures/budapest.ics 0000664 0001750 0001750 00000010534 12654077701 022616 0 ustar jan jan BEGIN:VTIMEZONE
TZID:Europe/Budapest
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19160430T230000
TZNAME:CEST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19161001T010000
TZNAME:CE-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19170416T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=15,16,17,18,19,20,21;BYDAY=1MO;UNTIL
=19180421T000000Z
TZNAME:CEST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19170917T020000
RRULE:FREQ=YEARLY;BYMONTH=9;BYMONTHDAY=15,16,17,18,19,20,21;BYDAY=1MO;UNTIL
=19180915T000000Z
TZNAME:CE-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19180401T030000
TZNAME:CEST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19180916T030000
TZNAME:CE-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19190415T030000
TZNAME:CEST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19191124T030000
TZNAME:CE-T
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0100
DTSTART:19421102T020000
TZNAME:CE-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19430329T020000
TZNAME:CEST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19431004T020000
TZNAME:CE-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19440403T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1MO;UNTIL=19450401T010000Z
TZNAME:CEST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19441002T020000
TZNAME:CE-T
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0100
DTSTART:19450916T020000
TZNAME:CE-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19450501T230000
TZNAME:CEST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19451101T000000
TZNAME:CE-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19460331T020000
TZNAME:CEST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19461006T020000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU;UNTIL=19491002T010000Z
TZNAME:CE-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19470406T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=4,5,6,7,8,9,10;BYDAY=1SU;UNTIL=19490
410T010000Z
TZNAME:CEST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0200
TZOFFSETTO:+0200
DTSTART:19500417T020000
TZNAME:CEST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19501023T020000
TZNAME:CE-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19540523T000000
RRULE:FREQ=YEARLY;BYMONTH=5;BYMONTHDAY=23;UNTIL=19550522T230000Z
TZNAME:CEST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19541003T000000
RRULE:FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=3;UNTIL=19551002T230000Z
TZNAME:CE-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19560603T000000
RRULE:FREQ=YEARLY;BYMONTH=6;BYDAY=1SU;UNTIL=19560602T230000Z
TZNAME:CEST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19560930T000000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=9;UNTIL=19560929T230000Z
TZNAME:CE-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19570602T010000
RRULE:FREQ=YEARLY;BYMONTH=6;BYDAY=1SU;UNTIL=19570602T000000Z
TZNAME:CEST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19570929T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=9;UNTIL=19570929T020000Z
TZNAME:CE-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19800406T010000
TZNAME:CEST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19800406T010000
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU;UNTIL=19800406T000000Z
TZNAME:CEST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19800928T010000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=9;UNTIL=19950923T230000Z
TZNAME:CE-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19810329T010000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
TZNAME:CEST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19961027T010000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZNAME:CE-T
END:STANDARD
END:VTIMEZONE
Horde_Timezone-1.0.10/test/Horde/Timezone/fixtures/etcetera 0000664 0001750 0001750 00000005613 12654077701 022030 0 ustar jan jan #
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.
# These entries are mostly present for historical reasons, so that
# people in areas not otherwise covered by the tz files could "zic -l"
# to a time zone that was right for their area. These days, the
# tz files cover almost all the inhabited world, and the only practical
# need now for the entries that are not on UTC are for ships at sea
# that cannot use POSIX TZ settings.
Zone Etc/GMT 0 - GMT
Zone Etc/UTC 0 - UTC
Zone Etc/UCT 0 - UCT
# The following link uses older naming conventions,
# but it belongs here, not in the file `backward',
# as functions like gmtime load the "GMT" file to handle leap seconds properly.
# We want this to work even on installations that omit the other older names.
Link Etc/GMT GMT
Link Etc/UTC Etc/Universal
Link Etc/UTC Etc/Zulu
Link Etc/GMT Etc/Greenwich
Link Etc/GMT Etc/GMT-0
Link Etc/GMT Etc/GMT+0
Link Etc/GMT Etc/GMT0
# We use POSIX-style signs in the Zone names and the output abbreviations,
# even though this is the opposite of what many people expect.
# POSIX has positive signs west of Greenwich, but many people expect
# positive signs east of Greenwich. For example, TZ='Etc/GMT+4' uses
# the abbreviation "GMT+4" and corresponds to 4 hours behind UTC
# (i.e. west of Greenwich) even though many people would expect it to
# mean 4 hours ahead of UTC (i.e. east of Greenwich).
#
# In the draft 5 of POSIX 1003.1-200x, the angle bracket notation allows for
# TZ='+4'; if you want time zone abbreviations conforming to
# ISO 8601 you can use TZ='<-0400>+4'. Thus the commonly-expected
# offset is kept within the angle bracket (and is used for display)
# while the POSIX sign is kept outside the angle bracket (and is used
# for calculation).
#
# Do not use a TZ setting like TZ='GMT+4', which is four hours behind
# GMT but uses the completely misleading abbreviation "GMT".
# Earlier incarnations of this package were not POSIX-compliant,
# and had lines such as
# Zone GMT-12 -12 - GMT-1200
# We did not want things to change quietly if someone accustomed to the old
# way does a
# zic -l GMT-12
# so we moved the names into the Etc subdirectory.
Zone Etc/GMT-14 14 - GMT-14 # 14 hours ahead of GMT
Zone Etc/GMT-13 13 - GMT-13
Zone Etc/GMT-12 12 - GMT-12
Zone Etc/GMT-11 11 - GMT-11
Zone Etc/GMT-10 10 - GMT-10
Zone Etc/GMT-9 9 - GMT-9
Zone Etc/GMT-8 8 - GMT-8
Zone Etc/GMT-7 7 - GMT-7
Zone Etc/GMT-6 6 - GMT-6
Zone Etc/GMT-5 5 - GMT-5
Zone Etc/GMT-4 4 - GMT-4
Zone Etc/GMT-3 3 - GMT-3
Zone Etc/GMT-2 2 - GMT-2
Zone Etc/GMT-1 1 - GMT-1
Zone Etc/GMT+1 -1 - GMT+1
Zone Etc/GMT+2 -2 - GMT+2
Zone Etc/GMT+3 -3 - GMT+3
Zone Etc/GMT+4 -4 - GMT+4
Zone Etc/GMT+5 -5 - GMT+5
Zone Etc/GMT+6 -6 - GMT+6
Zone Etc/GMT+7 -7 - GMT+7
Zone Etc/GMT+8 -8 - GMT+8
Zone Etc/GMT+9 -9 - GMT+9
Zone Etc/GMT+10 -10 - GMT+10
Zone Etc/GMT+11 -11 - GMT+11
Zone Etc/GMT+12 -12 - GMT+12
Horde_Timezone-1.0.10/test/Horde/Timezone/fixtures/etcetera.ics 0000664 0001750 0001750 00000000056 12654077701 022601 0 ustar jan jan BEGIN:VTIMEZONE
TZID:Etc/UTC
END:VTIMEZONE
Horde_Timezone-1.0.10/test/Horde/Timezone/fixtures/europe 0000664 0001750 0001750 00000013554 12654077701 021536 0 ustar jan jan # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
# Summer Time Act, 1916
Rule GB-Eire 1916 only - May 21 2:00s 1:00 BST
Rule GB-Eire 1916 only - Oct 1 2:00s 0 GMT
# S.R.&O. 1917, No. 358
Rule GB-Eire 1917 only - Apr 8 2:00s 1:00 BST
Rule GB-Eire 1917 only - Sep 17 2:00s 0 GMT
# S.R.&O. 1918, No. 274
Rule GB-Eire 1918 only - Mar 24 2:00s 1:00 BST
Rule GB-Eire 1918 only - Sep 30 2:00s 0 GMT
# S.R.&O. 1919, No. 297
Rule GB-Eire 1919 only - Mar 30 2:00s 1:00 BST
Rule GB-Eire 1919 only - Sep 29 2:00s 0 GMT
# S.R.&O. 1920, No. 458
Rule GB-Eire 1920 only - Mar 28 2:00s 1:00 BST
# S.R.&O. 1920, No. 1844
Rule GB-Eire 1920 only - Oct 25 2:00s 0 GMT
# S.R.&O. 1921, No. 363
Rule GB-Eire 1921 only - Apr 3 2:00s 1:00 BST
Rule GB-Eire 1921 only - Oct 3 2:00s 0 GMT
# S.R.&O. 1922, No. 264
Rule GB-Eire 1922 only - Mar 26 2:00s 1:00 BST
Rule GB-Eire 1922 only - Oct 8 2:00s 0 GMT
# The Summer Time Act, 1922
Rule GB-Eire 1923 only - Apr Sun>=16 2:00s 1:00 BST
Rule GB-Eire 1923 1924 - Sep Sun>=16 2:00s 0 GMT
Rule GB-Eire 1924 only - Apr Sun>=9 2:00s 1:00 BST
Rule GB-Eire 1925 1926 - Apr Sun>=16 2:00s 1:00 BST
# The Summer Time Act, 1925
Rule GB-Eire 1925 1938 - Oct Sun>=2 2:00s 0 GMT
Rule GB-Eire 1927 only - Apr Sun>=9 2:00s 1:00 BST
Rule GB-Eire 1928 1929 - Apr Sun>=16 2:00s 1:00 BST
Rule GB-Eire 1930 only - Apr Sun>=9 2:00s 1:00 BST
Rule GB-Eire 1931 1932 - Apr Sun>=16 2:00s 1:00 BST
Rule GB-Eire 1933 only - Apr Sun>=9 2:00s 1:00 BST
Rule GB-Eire 1934 only - Apr Sun>=16 2:00s 1:00 BST
Rule GB-Eire 1935 only - Apr Sun>=9 2:00s 1:00 BST
Rule GB-Eire 1936 1937 - Apr Sun>=16 2:00s 1:00 BST
Rule GB-Eire 1938 only - Apr Sun>=9 2:00s 1:00 BST
Rule GB-Eire 1939 only - Apr Sun>=16 2:00s 1:00 BST
# S.R.&O. 1939, No. 1379
Rule GB-Eire 1939 only - Nov Sun>=16 2:00s 0 GMT
# S.R.&O. 1940, No. 172 and No. 1883
Rule GB-Eire 1940 only - Feb Sun>=23 2:00s 1:00 BST
# S.R.&O. 1941, No. 476
Rule GB-Eire 1941 only - May Sun>=2 1:00s 2:00 BDST
Rule GB-Eire 1941 1943 - Aug Sun>=9 1:00s 1:00 BST
# S.R.&O. 1942, No. 506
Rule GB-Eire 1942 1944 - Apr Sun>=2 1:00s 2:00 BDST
# S.R.&O. 1944, No. 932
Rule GB-Eire 1944 only - Sep Sun>=16 1:00s 1:00 BST
# S.R.&O. 1945, No. 312
Rule GB-Eire 1945 only - Apr Mon>=2 1:00s 2:00 BDST
Rule GB-Eire 1945 only - Jul Sun>=9 1:00s 1:00 BST
# S.R.&O. 1945, No. 1208
Rule GB-Eire 1945 1946 - Oct Sun>=2 2:00s 0 GMT
Rule GB-Eire 1946 only - Apr Sun>=9 2:00s 1:00 BST
# The Summer Time Act, 1947
Rule GB-Eire 1947 only - Mar 16 2:00s 1:00 BST
Rule GB-Eire 1947 only - Apr 13 1:00s 2:00 BDST
Rule GB-Eire 1947 only - Aug 10 1:00s 1:00 BST
Rule GB-Eire 1947 only - Nov 2 2:00s 0 GMT
# Summer Time Order, 1948 (S.I. 1948/495)
Rule GB-Eire 1948 only - Mar 14 2:00s 1:00 BST
Rule GB-Eire 1948 only - Oct 31 2:00s 0 GMT
# Summer Time Order, 1949 (S.I. 1949/373)
Rule GB-Eire 1949 only - Apr 3 2:00s 1:00 BST
Rule GB-Eire 1949 only - Oct 30 2:00s 0 GMT
# Summer Time Order, 1950 (S.I. 1950/518)
# Summer Time Order, 1951 (S.I. 1951/430)
# Summer Time Order, 1952 (S.I. 1952/451)
Rule GB-Eire 1950 1952 - Apr Sun>=14 2:00s 1:00 BST
Rule GB-Eire 1950 1952 - Oct Sun>=21 2:00s 0 GMT
# revert to the rules of the Summer Time Act, 1925
Rule GB-Eire 1953 only - Apr Sun>=16 2:00s 1:00 BST
Rule GB-Eire 1953 1960 - Oct Sun>=2 2:00s 0 GMT
Rule GB-Eire 1954 only - Apr Sun>=9 2:00s 1:00 BST
Rule GB-Eire 1955 1956 - Apr Sun>=16 2:00s 1:00 BST
Rule GB-Eire 1957 only - Apr Sun>=9 2:00s 1:00 BST
Rule GB-Eire 1958 1959 - Apr Sun>=16 2:00s 1:00 BST
Rule GB-Eire 1960 only - Apr Sun>=9 2:00s 1:00 BST
# Summer Time Order, 1961 (S.I. 1961/71)
# Summer Time (1962) Order, 1961 (S.I. 1961/2465)
# Summer Time Order, 1963 (S.I. 1963/81)
Rule GB-Eire 1961 1963 - Mar lastSun 2:00s 1:00 BST
Rule GB-Eire 1961 1968 - Oct Sun>=23 2:00s 0 GMT
# Summer Time (1964) Order, 1963 (S.I. 1963/2101)
# Summer Time Order, 1964 (S.I. 1964/1201)
# Summer Time Order, 1967 (S.I. 1967/1148)
Rule GB-Eire 1964 1967 - Mar Sun>=19 2:00s 1:00 BST
# Summer Time Order, 1968 (S.I. 1968/117)
Rule GB-Eire 1968 only - Feb 18 2:00s 1:00 BST
# The British Standard Time Act, 1968
# (no summer time)
# The Summer Time Act, 1972
Rule GB-Eire 1972 1980 - Mar Sun>=16 2:00s 1:00 BST
Rule GB-Eire 1972 1980 - Oct Sun>=23 2:00s 0 GMT
# Summer Time Order, 1980 (S.I. 1980/1089)
# Summer Time Order, 1982 (S.I. 1982/1673)
# Summer Time Order, 1986 (S.I. 1986/223)
# Summer Time Order, 1988 (S.I. 1988/931)
Rule GB-Eire 1981 1995 - Mar lastSun 1:00u 1:00 BST
Rule GB-Eire 1981 1989 - Oct Sun>=23 1:00u 0 GMT
# Summer Time Order, 1989 (S.I. 1989/985)
# Summer Time Order, 1992 (S.I. 1992/1729)
# Summer Time Order 1994 (S.I. 1994/2798)
Rule GB-Eire 1990 1995 - Oct Sun>=22 1:00u 0 GMT
# Summer Time Order 1997 (S.I. 1997/2982)
# See EU for rules starting in 1996.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/London -0:01:15 - LMT 1847 Dec 1 0:00s
0:00 GB-Eire %s 1968 Oct 27
1:00 - BST 1971 Oct 31 2:00u
0:00 GB-Eire %s 1996
0:00 EU GMT/BST
Link Europe/London Europe/Jersey
Link Europe/London Europe/Guernsey
Link Europe/London Europe/Isle_of_Man
Zone Europe/Dublin -0:25:00 - LMT 1880 Aug 2
-0:25:21 - DMT 1916 May 21 2:00
-0:25:21 1:00 IST 1916 Oct 1 2:00s
0:00 GB-Eire %s 1921 Dec 6 # independence
0:00 GB-Eire GMT/IST 1940 Feb 25 2:00
0:00 1:00 IST 1946 Oct 6 2:00
0:00 - GMT 1947 Mar 16 2:00
0:00 1:00 IST 1947 Nov 2 2:00
0:00 - GMT 1948 Apr 18 2:00
0:00 GB-Eire GMT/IST 1968 Oct 27
1:00 - IST 1971 Oct 31 2:00u
0:00 GB-Eire GMT/IST 1996
0:00 EU GMT/IST
###############################################################################
# Europe
# EU rules are for the European Union, previously known as the EC, EEC,
# Common Market, etc.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule EU 1977 1980 - Apr Sun>=1 1:00u 1:00 S
Rule EU 1977 only - Sep lastSun 1:00u 0 -
Rule EU 1978 only - Oct 1 1:00u 0 -
Rule EU 1979 1995 - Sep lastSun 1:00u 0 -
Rule EU 1981 max - Mar lastSun 1:00u 1:00 S
Rule EU 1996 max - Oct lastSun 1:00u 0 -
Horde_Timezone-1.0.10/test/Horde/Timezone/fixtures/europe.ics 0000664 0001750 0001750 00000026442 12654077701 022313 0 ustar jan jan BEGIN:VTIMEZONE
TZID:Europe/Jersey
BEGIN:DAYLIGHT
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
DTSTART:19160521T020000
TZNAME:BST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0000
DTSTART:19161001T020000
TZNAME:GMT
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
DTSTART:19170408T020000
TZNAME:BST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0000
DTSTART:19170917T020000
TZNAME:GMT
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
DTSTART:19180324T020000
TZNAME:BST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0000
DTSTART:19180930T020000
TZNAME:GMT
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
DTSTART:19190330T020000
TZNAME:BST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0000
DTSTART:19190929T020000
TZNAME:GMT
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
DTSTART:19200328T020000
TZNAME:BST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0000
DTSTART:19201025T020000
TZNAME:GMT
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
DTSTART:19210403T020000
TZNAME:BST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0000
DTSTART:19211003T020000
TZNAME:GMT
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
DTSTART:19220326T020000
TZNAME:BST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0000
DTSTART:19221008T020000
TZNAME:GMT
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
DTSTART:19230422T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=16,17,18,19,20,21,22;BYDAY=1SU;UNTIL
=19230422T020000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0000
DTSTART:19230916T020000
RRULE:FREQ=YEARLY;BYMONTH=9;BYMONTHDAY=16,17,18,19,20,21,22;BYDAY=1SU;UNTIL
=19240921T020000Z
TZNAME:GMT
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
DTSTART:19240413T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=9,10,11,12,13,14,15;BYDAY=1SU;UNTIL=
19240413T020000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0100
DTSTART:19250419T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=16,17,18,19,20,21,22;BYDAY=1SU;UNTIL
=19260418T020000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0000
DTSTART:19251004T020000
RRULE:FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=2,3,4,5,6,7,8;BYDAY=1SU;UNTIL=19381
002T020000Z
TZNAME:GMT
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
DTSTART:19270410T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=9,10,11,12,13,14,15;BYDAY=1SU;UNTIL=
19270410T020000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0100
DTSTART:19280422T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=16,17,18,19,20,21,22;BYDAY=1SU;UNTIL
=19290421T020000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0100
DTSTART:19300413T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=9,10,11,12,13,14,15;BYDAY=1SU;UNTIL=
19300413T020000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0100
DTSTART:19310419T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=16,17,18,19,20,21,22;BYDAY=1SU;UNTIL
=19320417T020000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0100
DTSTART:19330409T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=9,10,11,12,13,14,15;BYDAY=1SU;UNTIL=
19330409T020000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0100
DTSTART:19340422T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=16,17,18,19,20,21,22;BYDAY=1SU;UNTIL
=19340422T020000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0100
DTSTART:19350414T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=9,10,11,12,13,14,15;BYDAY=1SU;UNTIL=
19350414T020000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0100
DTSTART:19360419T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=16,17,18,19,20,21,22;BYDAY=1SU;UNTIL
=19370418T020000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0100
DTSTART:19380410T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=9,10,11,12,13,14,15;BYDAY=1SU;UNTIL=
19380410T020000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0100
DTSTART:19390416T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=16,17,18,19,20,21,22;BYDAY=1SU;UNTIL
=19390416T020000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0000
DTSTART:19391119T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYMONTHDAY=16,17,18,19,20,21,22;BYDAY=1SU;UNTI
L=19391119T020000Z
TZNAME:GMT
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
DTSTART:19400225T020000
RRULE:FREQ=YEARLY;BYMONTH=2;BYMONTHDAY=23,24,25,26,27,28,29;BYDAY=1SU;UNTIL
=19400225T020000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19410504T010000
RRULE:FREQ=YEARLY;BYMONTH=5;BYMONTHDAY=2,3,4,5,6,7,8;BYDAY=1SU;UNTIL=194105
04T000000Z
TZNAME:BDST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19410810T010000
RRULE:FREQ=YEARLY;BYMONTH=8;BYMONTHDAY=9,10,11,12,13,14,15;BYDAY=1SU;UNTIL=
19430814T230000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19420405T010000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=2,3,4,5,6,7,8;BYDAY=1SU;UNTIL=194404
02T000000Z
TZNAME:BDST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19440917T010000
RRULE:FREQ=YEARLY;BYMONTH=9;BYMONTHDAY=16,17,18,19,20,21,22;BYDAY=1SU;UNTIL
=19440916T230000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19450402T010000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=2,3,4,5,6,7,8;BYDAY=1MO;UNTIL=194504
07T230000Z
TZNAME:BDST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19450715T010000
RRULE:FREQ=YEARLY;BYMONTH=7;BYMONTHDAY=9,10,11,12,13,14,15;BYDAY=1SU;UNTIL=
19450714T230000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0000
DTSTART:19451007T020000
RRULE:FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=2,3,4,5,6,7,8;BYDAY=1SU;UNTIL=19461
006T020000Z
TZNAME:GMT
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
DTSTART:19460414T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=9,10,11,12,13,14,15;BYDAY=1SU;UNTIL=
19460414T020000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0100
DTSTART:19470316T020000
TZNAME:BST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19470413T010000
TZNAME:BDST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19470810T010000
TZNAME:BST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0000
DTSTART:19471102T020000
TZNAME:GMT
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
DTSTART:19480314T020000
TZNAME:BST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0000
DTSTART:19481031T020000
TZNAME:GMT
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
DTSTART:19490403T020000
TZNAME:BST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0000
DTSTART:19491030T020000
TZNAME:GMT
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
DTSTART:19500416T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=14,15,16,17,18,19,20;BYDAY=1SU;UNTIL
=19520420T020000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0000
DTSTART:19501022T020000
RRULE:FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=21,22,23,24,25,26,27;BYDAY=1SU;UNTI
L=19521026T020000Z
TZNAME:GMT
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
DTSTART:19530419T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=16,17,18,19,20,21,22;BYDAY=1SU;UNTIL
=19530419T020000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0000
DTSTART:19531004T020000
RRULE:FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=2,3,4,5,6,7,8;BYDAY=1SU;UNTIL=19601
002T020000Z
TZNAME:GMT
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
DTSTART:19540411T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=9,10,11,12,13,14,15;BYDAY=1SU;UNTIL=
19540411T020000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0100
DTSTART:19550417T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=16,17,18,19,20,21,22;BYDAY=1SU;UNTIL
=19560422T020000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0100
DTSTART:19570414T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=9,10,11,12,13,14,15;BYDAY=1SU;UNTIL=
19570414T020000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0100
DTSTART:19580420T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=16,17,18,19,20,21,22;BYDAY=1SU;UNTIL
=19590419T020000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0100
DTSTART:19600410T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=9,10,11,12,13,14,15;BYDAY=1SU;UNTIL=
19600410T020000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0100
DTSTART:19610326T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3;UNTIL=19630331T020000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0000
DTSTART:19611029T020000
RRULE:FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=23,24,25,26,27,28,29;BYDAY=1SU;UNTI
L=19681027T010000Z
TZNAME:GMT
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
DTSTART:19640322T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYMONTHDAY=19,20,21,22,23,24,25;BYDAY=1SU;UNTIL
=19670319T020000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0100
DTSTART:19680218T020000
TZNAME:BST
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19681027T000000
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
TZNAME:BST
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:+0000
TZOFFSETTO:+0000
DTSTART:19681027T020000
RRULE:FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=23,24,25,26,27,28,29;BYDAY=1SU;UNTI
L=19681027T010000Z
TZNAME:GMT
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
DTSTART:19680218T020000
TZNAME:BST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0100
DTSTART:19720319T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYMONTHDAY=16,17,18,19,20,21,22;BYDAY=1SU;UNTIL
=19800316T020000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0000
DTSTART:19721029T020000
RRULE:FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=23,24,25,26,27,28,29;BYDAY=1SU;UNTI
L=19801026T020000Z
TZNAME:GMT
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
DTSTART:19810329T010000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3;UNTIL=19950326T010000Z
TZNAME:BST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0000
DTSTART:19811025T010000
RRULE:FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=23,24,25,26,27,28,29;BYDAY=1SU;UNTI
L=19891029T010000Z
TZNAME:GMT
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:+0000
TZOFFSETTO:+0000
DTSTART:19901028T010000
RRULE:FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=22,23,24,25,26,27,28;BYDAY=1SU;UNTI
L=19951022T010000Z
TZNAME:GMT
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
DTSTART:19960331T010000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
TZNAME:GMT/BST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0000
DTSTART:19961027T010000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZNAME:GMT/BST
END:STANDARD
END:VTIMEZONE
Horde_Timezone-1.0.10/test/Horde/Timezone/fixtures/losangeles.ics 0000664 0001750 0001750 00000005102 12654077701 023136 0 ustar jan jan BEGIN:VTIMEZONE
TZID:America/Los_Angeles
BEGIN:DAYLIGHT
TZOFFSETFROM:-0800
TZOFFSETTO:-0700
DTSTART:19180331T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3;UNTIL=19190330T100000Z
TZNAME:PDT
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0700
TZOFFSETTO:-0800
DTSTART:19181027T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10;UNTIL=19191026T100000Z
TZNAME:PST
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0800
TZOFFSETTO:-0700
DTSTART:19420209T020000
TZNAME:PWT
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:-0700
TZOFFSETTO:-0700
DTSTART:19450814T230000
TZNAME:PPT
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0700
TZOFFSETTO:-0800
DTSTART:19450930T020000
TZNAME:PST
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0800
TZOFFSETTO:-0700
DTSTART:19480314T020000
TZNAME:PDT
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0700
TZOFFSETTO:-0800
DTSTART:19490101T020000
TZNAME:PST
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0800
TZOFFSETTO:-0700
DTSTART:19500430T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=4;UNTIL=19660424T100000Z
TZNAME:PDT
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0700
TZOFFSETTO:-0800
DTSTART:19500924T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=9;UNTIL=19610924T100000Z
TZNAME:PST
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:-0800
TZOFFSETTO:-0800
DTSTART:19621028T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10;UNTIL=19661030T100000Z
TZNAME:PST
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:-0800
TZOFFSETTO:-0800
DTSTART:19671029T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10;UNTIL=20061029T100000Z
TZNAME:PST
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0800
TZOFFSETTO:-0700
DTSTART:19670430T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=4;UNTIL=19730429T100000Z
TZNAME:PDT
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:-0700
TZOFFSETTO:-0700
DTSTART:19740106T020000
TZNAME:PDT
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:-0700
TZOFFSETTO:-0700
DTSTART:19750223T020000
TZNAME:PDT
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:-0700
TZOFFSETTO:-0700
DTSTART:19760425T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=4;UNTIL=19860427T100000Z
TZNAME:PDT
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:-0700
TZOFFSETTO:-0700
DTSTART:19870405T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU;UNTIL=20060402T100000Z
TZNAME:PDT
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:-0700
TZOFFSETTO:-0700
DTSTART:20070311T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYMONTHDAY=8,9,10,11,12,13,14;BYDAY=1SU
TZNAME:PDT
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0700
TZOFFSETTO:-0800
DTSTART:20071104T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
TZNAME:PST
END:STANDARD
END:VTIMEZONE
Horde_Timezone-1.0.10/test/Horde/Timezone/fixtures/northamerica 0000664 0001750 0001750 00000001754 12654077701 022712 0 ustar jan jan # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule US 1918 1919 - Mar lastSun 2:00 1:00 D
Rule US 1918 1919 - Oct lastSun 2:00 0 S
Rule US 1942 only - Feb 9 2:00 1:00 W # War
Rule US 1945 only - Aug 14 23:00u 1:00 P # Peace
Rule US 1945 only - Sep 30 2:00 0 S
Rule US 1967 2006 - Oct lastSun 2:00 0 S
Rule US 1967 1973 - Apr lastSun 2:00 1:00 D
Rule US 1974 only - Jan 6 2:00 1:00 D
Rule US 1975 only - Feb 23 2:00 1:00 D
Rule US 1976 1986 - Apr lastSun 2:00 1:00 D
Rule US 1987 2006 - Apr Sun>=1 2:00 1:00 D
Rule US 2007 max - Mar Sun>=8 2:00 1:00 D
Rule US 2007 max - Nov Sun>=1 2:00 0 S
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
Rule CA 1948 only - Mar 14 2:00 1:00 D
Rule CA 1949 only - Jan 1 2:00 0 S
Rule CA 1950 1966 - Apr lastSun 2:00 1:00 D
Rule CA 1950 1961 - Sep lastSun 2:00 0 S
Rule CA 1962 1966 - Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Los_Angeles -7:52:58 - LMT 1883 Nov 18 12:07:02
-8:00 US P%sT 1946
-8:00 CA P%sT 1967
-8:00 US P%sT
Horde_Timezone-1.0.10/test/Horde/Timezone/fixtures/uruguay 0000664 0001750 0001750 00000011710 12654077701 021730 0 ustar jan jan # Uruguay
# From Paul Eggert (1993-11-18):
# Uruguay wins the prize for the strangest peacetime manipulation of the rules.
# From Shanks & Pottenger:
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
# Whitman gives 1923 Oct 1; go with Shanks & Pottenger.
Rule Uruguay 1923 only - Oct 2 0:00 0:30 HS
Rule Uruguay 1924 1926 - Apr 1 0:00 0 -
Rule Uruguay 1924 1925 - Oct 1 0:00 0:30 HS
Rule Uruguay 1933 1935 - Oct lastSun 0:00 0:30 HS
# Shanks & Pottenger give 1935 Apr 1 0:00 & 1936 Mar 30 0:00; go with Whitman.
Rule Uruguay 1934 1936 - Mar Sat>=25 23:30s 0 -
Rule Uruguay 1936 only - Nov 1 0:00 0:30 HS
Rule Uruguay 1937 1941 - Mar lastSun 0:00 0 -
# Whitman gives 1937 Oct 3; go with Shanks & Pottenger.
Rule Uruguay 1937 1940 - Oct lastSun 0:00 0:30 HS
# Whitman gives 1941 Oct 24 - 1942 Mar 27, 1942 Dec 14 - 1943 Apr 13,
# and 1943 Apr 13 "to present time"; go with Shanks & Pottenger.
Rule Uruguay 1941 only - Aug 1 0:00 0:30 HS
Rule Uruguay 1942 only - Jan 1 0:00 0 -
Rule Uruguay 1942 only - Dec 14 0:00 1:00 S
Rule Uruguay 1943 only - Mar 14 0:00 0 -
Rule Uruguay 1959 only - May 24 0:00 1:00 S
Rule Uruguay 1959 only - Nov 15 0:00 0 -
Rule Uruguay 1960 only - Jan 17 0:00 1:00 S
Rule Uruguay 1960 only - Mar 6 0:00 0 -
Rule Uruguay 1965 1967 - Apr Sun>=1 0:00 1:00 S
Rule Uruguay 1965 only - Sep 26 0:00 0 -
Rule Uruguay 1966 1967 - Oct 31 0:00 0 -
Rule Uruguay 1968 1970 - May 27 0:00 0:30 HS
Rule Uruguay 1968 1970 - Dec 2 0:00 0 -
Rule Uruguay 1972 only - Apr 24 0:00 1:00 S
Rule Uruguay 1972 only - Aug 15 0:00 0 -
Rule Uruguay 1974 only - Mar 10 0:00 0:30 HS
Rule Uruguay 1974 only - Dec 22 0:00 1:00 S
Rule Uruguay 1976 only - Oct 1 0:00 0 -
Rule Uruguay 1977 only - Dec 4 0:00 1:00 S
Rule Uruguay 1978 only - Apr 1 0:00 0 -
Rule Uruguay 1979 only - Oct 1 0:00 1:00 S
Rule Uruguay 1980 only - May 1 0:00 0 -
Rule Uruguay 1987 only - Dec 14 0:00 1:00 S
Rule Uruguay 1988 only - Mar 14 0:00 0 -
Rule Uruguay 1988 only - Dec 11 0:00 1:00 S
Rule Uruguay 1989 only - Mar 12 0:00 0 -
Rule Uruguay 1989 only - Oct 29 0:00 1:00 S
# Shanks & Pottenger say no DST was observed in 1990/1 and 1991/2,
# and that 1992/3's DST was from 10-25 to 03-01. Go with IATA.
Rule Uruguay 1990 1992 - Mar Sun>=1 0:00 0 -
Rule Uruguay 1990 1991 - Oct Sun>=21 0:00 1:00 S
Rule Uruguay 1992 only - Oct 18 0:00 1:00 S
Rule Uruguay 1993 only - Feb 28 0:00 0 -
# From Eduardo Cota (2004-09-20):
# The Uruguayan government has decreed a change in the local time....
# http://www.presidencia.gub.uy/decretos/2004091502.htm
Rule Uruguay 2004 only - Sep 19 0:00 1:00 S
# From Steffen Thorsen (2005-03-11):
# Uruguay's DST was scheduled to end on Sunday, 2005-03-13, but in order to
# save energy ... it was postponed two weeks....
# http://www.presidencia.gub.uy/_Web/noticias/2005/03/2005031005.htm
Rule Uruguay 2005 only - Mar 27 2:00 0 -
# From Eduardo Cota (2005-09-27):
# http://www.presidencia.gub.uy/_Web/decretos/2005/09/CM%20119_09%2009%202005_00001.PDF
# This means that from 2005-10-09 at 02:00 local time, until 2006-03-12 at
# 02:00 local time, official time in Uruguay will be at GMT -2.
Rule Uruguay 2005 only - Oct 9 2:00 1:00 S
Rule Uruguay 2006 only - Mar 12 2:00 0 -
# From Jesper Nørgaard Welen (2006-09-06):
# http://www.presidencia.gub.uy/_web/decretos/2006/09/CM%20210_08%2006%202006_00001.PDF
#
# From Steffen Thorsen (2015-06-30):
# ... it looks like they will not be using DST the coming summer:
# http://www.elobservador.com.uy/gobierno-resolvio-que-no-habra-cambio-horario-verano-n656787
# http://www.republica.com.uy/este-ano-no-se-modificara-el-huso-horario-en-uruguay/523760/
# From Paul Eggert (2015-06-30):
# Apparently restaurateurs complained that DST caused people to go to the beach
# instead of out to dinner.
# From Pablo Camargo (2015-07-13):
# http://archivo.presidencia.gub.uy/sci/decretos/2015/06/cons_min_201.pdf
# [dated 2015-06-29; repeals Decree 311/006 dated 2006-09-04]
Rule Uruguay 2006 2014 - Oct Sun>=1 2:00 1:00 S
Rule Uruguay 2007 2015 - Mar Sun>=8 2:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Montevideo -3:44:44 - LMT 1898 Jun 28
-3:44:44 - MMT 1920 May 1 # Montevideo MT
-3:30 Uruguay UY%sT 1942 Dec 14 # Uruguay Time
-3:00 Uruguay UY%sT Horde_Timezone-1.0.10/test/Horde/Timezone/fixtures/uruguay.ics 0000664 0001750 0001750 00000014006 12654077701 022506 0 ustar jan jan BEGIN:VTIMEZONE
TZID:America/Montevideo
BEGIN:STANDARD
DTSTART:18980628T000000
TZOFFSETFROM:-0344
TZOFFSETTO:-0344
TZNAME:MMT
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:-0330
TZOFFSETTO:-0330
DTSTART:19231002T000000
TZNAME:UYHST
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:-0330
TZOFFSETTO:-0330
DTSTART:19240401T000000
RRULE:FREQ=YEARLY;BYMONTH=4;BYMONTHDAY=1;UNTIL=19260401T033000Z
TZNAME:UY-T
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:-0330
TZOFFSETTO:-0330
DTSTART:19241001T000000
RRULE:FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=1;UNTIL=19251001T033000Z
TZNAME:UYHST
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:-0330
TZOFFSETTO:-0330
DTSTART:19331029T000000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10;UNTIL=19351027T033000Z
TZNAME:UYHST
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:-0330
TZOFFSETTO:-0330
DTSTART:19340331T233000
RRULE:FREQ=YEARLY;BYMONTH=3;BYMONTHDAY=25,26,27,28,29,30,31;BYDAY=1SA;UNTIL
=19360330T030000Z
TZNAME:UY-T
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:-0330
TZOFFSETTO:-0330
DTSTART:19361101T000000
TZNAME:UYHST
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:-0330
TZOFFSETTO:-0330
DTSTART:19370328T000000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3;UNTIL=19410330T033000Z
TZNAME:UY-T
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:-0330
TZOFFSETTO:-0330
DTSTART:19371031T000000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10;UNTIL=19401027T033000Z
TZNAME:UYHST
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:-0330
TZOFFSETTO:-0330
DTSTART:19410801T000000
TZNAME:UYHST
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:-0330
TZOFFSETTO:-0330
DTSTART:19420101T000000
TZNAME:UY-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0330
TZOFFSETTO:-0230
DTSTART:19421214T000000
TZNAME:UYST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0300
TZOFFSETTO:-0300
DTSTART:19420101T000000
TZNAME:UY-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0300
TZOFFSETTO:-0200
DTSTART:19421214T000000
TZNAME:UYST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0200
TZOFFSETTO:-0300
DTSTART:19430314T000000
TZNAME:UY-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0300
TZOFFSETTO:-0200
DTSTART:19590524T000000
TZNAME:UYST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0200
TZOFFSETTO:-0300
DTSTART:19591115T000000
TZNAME:UY-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0300
TZOFFSETTO:-0200
DTSTART:19600117T000000
TZNAME:UYST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0200
TZOFFSETTO:-0300
DTSTART:19600306T000000
TZNAME:UY-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0300
TZOFFSETTO:-0200
DTSTART:19650404T000000
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU;UNTIL=19670402T030000Z
TZNAME:UYST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0200
TZOFFSETTO:-0300
DTSTART:19650926T000000
TZNAME:UY-T
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:-0300
TZOFFSETTO:-0300
DTSTART:19661031T000000
RRULE:FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=31;UNTIL=19671031T030000Z
TZNAME:UY-T
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:-0300
TZOFFSETTO:-0300
DTSTART:19680527T000000
RRULE:FREQ=YEARLY;BYMONTH=5;BYMONTHDAY=27;UNTIL=19700527T030000Z
TZNAME:UYHST
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:-0300
TZOFFSETTO:-0300
DTSTART:19681202T000000
RRULE:FREQ=YEARLY;BYMONTH=12;BYMONTHDAY=2;UNTIL=19701202T030000Z
TZNAME:UY-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0300
TZOFFSETTO:-0200
DTSTART:19720424T000000
TZNAME:UYST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0200
TZOFFSETTO:-0300
DTSTART:19720815T000000
TZNAME:UY-T
END:STANDARD
BEGIN:STANDARD
TZOFFSETFROM:-0300
TZOFFSETTO:-0300
DTSTART:19740310T000000
TZNAME:UYHST
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0300
TZOFFSETTO:-0200
DTSTART:19741222T000000
TZNAME:UYST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0200
TZOFFSETTO:-0300
DTSTART:19761001T000000
TZNAME:UY-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0300
TZOFFSETTO:-0200
DTSTART:19771204T000000
TZNAME:UYST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0200
TZOFFSETTO:-0300
DTSTART:19780401T000000
TZNAME:UY-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0300
TZOFFSETTO:-0200
DTSTART:19791001T000000
TZNAME:UYST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0200
TZOFFSETTO:-0300
DTSTART:19800501T000000
TZNAME:UY-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0300
TZOFFSETTO:-0200
DTSTART:19871214T000000
TZNAME:UYST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0200
TZOFFSETTO:-0300
DTSTART:19880314T000000
TZNAME:UY-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0300
TZOFFSETTO:-0200
DTSTART:19881211T000000
TZNAME:UYST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0200
TZOFFSETTO:-0300
DTSTART:19890312T000000
TZNAME:UY-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0300
TZOFFSETTO:-0200
DTSTART:19891029T000000
TZNAME:UYST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0200
TZOFFSETTO:-0300
DTSTART:19900304T000000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=1SU;UNTIL=19920301T030000Z
TZNAME:UY-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0300
TZOFFSETTO:-0200
DTSTART:19901021T000000
RRULE:FREQ=YEARLY;BYMONTH=10;BYMONTHDAY=21,22,23,24,25,26,27;BYDAY=1SU;UNTI
L=19911027T030000Z
TZNAME:UYST
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETFROM:-0200
TZOFFSETTO:-0200
DTSTART:19921018T000000
TZNAME:UYST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0200
TZOFFSETTO:-0300
DTSTART:19930228T000000
TZNAME:UY-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0300
TZOFFSETTO:-0200
DTSTART:20040919T000000
TZNAME:UYST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0200
TZOFFSETTO:-0300
DTSTART:20050327T020000
TZNAME:UY-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0300
TZOFFSETTO:-0200
DTSTART:20051009T020000
TZNAME:UYST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0200
TZOFFSETTO:-0300
DTSTART:20060312T020000
TZNAME:UY-T
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0300
TZOFFSETTO:-0200
DTSTART:20061001T020000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU;UNTIL=20141005T050000Z
TZNAME:UYST
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0200
TZOFFSETTO:-0300
DTSTART:20070311T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYMONTHDAY=8,9,10,11,12,13,14;BYDAY=1SU;UNTIL=2
0150308T050000Z
TZNAME:UY-T
END:STANDARD
END:VTIMEZONE
Horde_Timezone-1.0.10/test/Horde/Timezone/AllTests.php 0000664 0001750 0001750 00000000132 12654077701 020673 0 ustar jan jan run();
Horde_Timezone-1.0.10/test/Horde/Timezone/bootstrap.php 0000664 0001750 0001750 00000000143 12654077701 021157 0 ustar jan jan
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @category Horde
* @package Timezone
* @subpackage UnitTests
*/
class Horde_Timezone_IcalendarTest extends Horde_Test_Case
{
public function testEurope()
{
$tz = new Horde_Timezone_Mock('europe');
$this->assertStringEqualsFile(
__DIR__ . '/fixtures/europe.ics',
$tz->getZone('Europe/Jersey')->toVtimezone()->exportVcalendar()
);
}
public function testLosAngeles()
{
$tz = new Horde_Timezone_Mock('northamerica');
$this->assertStringEqualsFile(
__DIR__ . '/fixtures/losangeles.ics',
$tz->getZone('America/Los_Angeles')->toVtimezone()->exportVcalendar()
);
}
public function testEtc()
{
$tz = new Horde_Timezone_Mock('etcetera');
$this->assertStringEqualsFile(
__DIR__ . '/fixtures/etcetera.ics',
$tz->getZone('Etc/UTC')->toVtimezone()->exportVcalendar()
);
}
public function testBug14221()
{
$tz = new Horde_Timezone_Mock('budapest');
$this->assertStringEqualsFile(
__DIR__ . '/fixtures/budapest.ics',
$tz->getZone('Europe/Budapest')->toVtimezone()->exportVcalendar()
);
}
public function testBug14162()
{
$tz = new Horde_Timezone_Mock('uruguay');
$this->assertStringEqualsFile(
__DIR__ . '/fixtures/uruguay.ics',
$tz->getZone('America/Montevideo')->toVtimezone()->exportVcalendar()
);
}
}
Horde_Timezone-1.0.10/test/Horde/Timezone/Mock.php 0000664 0001750 0001750 00000001062 12654077701 020034 0 ustar jan jan
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @category Horde
* @package Timezone
* @subpackage UnitTests
*/
class Horde_Timezone_Mock extends Horde_Timezone
{
protected $_zone;
public function __construct($zone)
{
parent::__construct();
$this->_zone = $zone;
}
protected function _download()
{
}
protected function _extractAndParse()
{
$this->_parse(file_get_contents(__DIR__ . '/fixtures/' . $this->_zone));
}
}
Horde_Timezone-1.0.10/test/Horde/Timezone/ParseTest.php 0000664 0001750 0001750 00000000617 12654077701 021062 0 ustar jan jan
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @category Horde
* @package Timezone
* @subpackage UnitTests
*/
class Horde_Timezone_ParseTest extends Horde_Test_Case
{
public function testBug13455()
{
$tz = new Horde_Timezone_Mock('europe');
$tz->getZone('Europe/Dublin')->toVtimezone();
}
}
Horde_Timezone-1.0.10/test/Horde/Timezone/phpunit.xml 0000664 0001750 0001750 00000000056 12654077701 020645 0 ustar jan jan