예제 #1
0
 public function test_London_getTransitionRules()
 {
     $test = $this->europeLondon();
     $rules = $test->getTransitionRules();
     $this->assertEquals(count($rules), 2);
     $in = $rules[0];
     $this->assertEquals($in->getMonth(), Month::MARCH());
     $this->assertEquals($in->getDayOfMonthIndicator(), 25);
     // optimized from -1
     $this->assertEquals($in->getDayOfWeek(), DayOfWeek::SUNDAY());
     $this->assertEquals($in->getLocalTime(), LocalTime::of(1, 0));
     $this->assertEquals($in->getTimeDefinition(), TimeDefinition::UTC());
     $this->assertEquals($in->getStandardOffset(), self::$OFFSET_ZERO);
     $this->assertEquals($in->getOffsetBefore(), self::$OFFSET_ZERO);
     $this->assertEquals($in->getOffsetAfter(), self::$OFFSET_PONE);
     $out = $rules[1];
     $this->assertEquals($out->getMonth(), Month::OCTOBER());
     $this->assertEquals($out->getDayOfMonthIndicator(), 25);
     // optimized from -1
     $this->assertEquals($out->getDayOfWeek(), DayOfWeek::SUNDAY());
     $this->assertEquals($out->getLocalTime(), LocalTime::of(1, 0));
     $this->assertEquals($out->getTimeDefinition(), TimeDefinition::UTC());
     $this->assertEquals($out->getStandardOffset(), self::$OFFSET_ZERO);
     $this->assertEquals($out->getOffsetBefore(), self::$OFFSET_PONE);
     $this->assertEquals($out->getOffsetAfter(), self::$OFFSET_ZERO);
 }
 private function parseTimeDefinition($c)
 {
     switch ($c) {
         case 's':
         case 'S':
             // standard time
             return TimeDefinition::STANDARD();
         case 'u':
         case 'U':
         case 'g':
         case 'G':
         case 'z':
         case 'Z':
             // UTC
             return TimeDefinition::UTC();
         case 'w':
         case 'W':
         default:
             // wall time
             return TimeDefinition::WALL();
     }
 }