/** * AgaviTimeZone API. * * @see AgaviTimeZone::getDSTSavings() * * @author Dominik del Bondio <*****@*****.**> * @author The ICU Project * @since 0.11.0 */ public function getDSTSavings() { if ($this->finalZone !== null) { return $this->finalZone->getDSTSavings(); } return parent::getDSTSavings(); }
/** * @bug 4107276 */ public function testDSTSavings() { // It might be better to find a way to integrate this test into the main TimeZone // tests above, but I don't have time to figure out how to do this (or if it's // even really a good idea). Let's consider that a future. --rtg 1/27/98 $tz = new AgaviSimpleTimeZone($this->tm, -5 * AgaviDateDefinitions::MILLIS_PER_HOUR, "dstSavingsTest", AgaviDateDefinitions::MARCH, 1, 0, 0, AgaviDateDefinitions::SEPTEMBER, 1, 0, 0, 0.5 * AgaviDateDefinitions::MILLIS_PER_HOUR); $this->assertEquals(-5 * AgaviDateDefinitions::MILLIS_PER_HOUR, $tz->getRawOffset()); $this->assertTrue($tz->useDaylightTime(), 'Test time zone should use DST but claims it doesn\'t.'); $this->assertEquals(0.5 * AgaviDateDefinitions::MILLIS_PER_HOUR, $tz->getDSTSavings()); $offset = $tz->getOffset(AgaviGregorianCalendar::AD, 1998, AgaviDateDefinitions::JANUARY, 1, AgaviDateDefinitions::THURSDAY, 10 * AgaviDateDefinitions::MILLIS_PER_HOUR); $this->assertEquals(-5 * AgaviDateDefinitions::MILLIS_PER_HOUR, $offset); $offset = $tz->getOffset(AgaviGregorianCalendar::AD, 1998, AgaviDateDefinitions::JUNE, 1, AgaviDateDefinitions::MONDAY, 10 * AgaviDateDefinitions::MILLIS_PER_HOUR); $this->assertEquals(-4.5 * AgaviDateDefinitions::MILLIS_PER_HOUR, $offset); $tz->setDSTSavings(AgaviDateDefinitions::MILLIS_PER_HOUR); $offset = $tz->getOffset(AgaviGregorianCalendar::AD, 1998, AgaviDateDefinitions::JANUARY, 1, AgaviDateDefinitions::THURSDAY, 10 * AgaviDateDefinitions::MILLIS_PER_HOUR); $this->assertEquals(-5 * AgaviDateDefinitions::MILLIS_PER_HOUR, $offset); $offset = $tz->getOffset(AgaviGregorianCalendar::AD, 1998, AgaviDateDefinitions::JUNE, 1, AgaviDateDefinitions::MONDAY, 10 * AgaviDateDefinitions::MILLIS_PER_HOUR); $this->assertEquals(-4 * AgaviDateDefinitions::MILLIS_PER_HOUR, $offset); }