/** * Test the creation methods. */ function test_creation() { // withHourMinuteSecond () // withSeconds () $sTime = Time::withSeconds(55510); $hmsTime = Time::withHourMinuteSecond(15, 25, 10); $this->assertEqual($sTime->asSeconds(), 55510); $this->assertEqual($hmsTime->asSeconds(), 55510); $this->assertEqual($sTime->hour(), 15); $this->assertEqual($hmsTime->hour(), 15); $this->assertEqual($sTime->minute(), 25); $this->assertEqual($hmsTime->minute(), 25); $this->assertEqual($sTime->second(), 10); $this->assertEqual($hmsTime->second(), 10); // with times greater than a day $sTime = Time::withSeconds(55510 + 86400); $hmsTime = Time::withHourMinuteSecond(15 + 24, 25, 10); $this->assertEqual($sTime->asSeconds(), 55510); $this->assertEqual($hmsTime->asSeconds(), 55510); $this->assertEqual($sTime->hour(), 15); $this->assertEqual($hmsTime->hour(), 15); $this->assertEqual($sTime->minute(), 25); $this->assertEqual($hmsTime->minute(), 25); $this->assertEqual($sTime->second(), 10); $this->assertEqual($hmsTime->second(), 10); // atMidnight() $midnight = Time::midnight(); // atNoon() $noon = Time::noon(); $this->assertEqual($midnight->asSeconds(), 0); $this->assertEqual($noon->asSeconds(), 43200); $this->assertEqual($midnight->hour(), 0); $this->assertEqual($noon->hour(), 12); $this->assertEqual($midnight->minute(), 0); $this->assertEqual($noon->minute(), 0); $this->assertEqual($midnight->second(), 0); $this->assertEqual($noon->second(), 0); }
/** * Test converting */ function test_converting() { $dateAndTime = DateAndTime::withYearMonthDayHourMinuteSecondOffset(2005, 6, 4, 15, 25, 10, Duration::withHours(-5)); // asDate() $temp = $dateAndTime->asDate(); $this->assertTrue($temp->isEqualTo(Date::withYearMonthDay(2005, 6, 4))); // asDuration() $temp = $dateAndTime->asDuration(); $this->assertTrue($temp->isEqualTo(Duration::withSeconds(55510))); // asDateAndTime() $temp = $dateAndTime->asDateAndTime(); $this->assertTrue($temp->isEqualTo(DateAndTime::withYearMonthDayHourMinuteSecondOffset(2005, 6, 4, 15, 25, 10, Duration::withHours(-5)))); // asLocal() $startDuration = Duration::withHours(-5); $localOffset = DateAndTime::localOffset(); $difference = $localOffset->minus($startDuration); $temp = $dateAndTime->asLocal(); $local = DateAndTime::withYearMonthDayHourMinuteSecondOffset(2005, 6, 4, 15 + $difference->hours(), 25, 10, $localOffset); $this->assertTrue($temp->isEqualTo($local)); // asMonth() $temp = $dateAndTime->asMonth(); $this->assertTrue($temp->isEqualTo(Month::withMonthYear(6, 2005))); // asSeconds() $localOffset = DateAndTime::localOffset(); $this->assertEqual($dateAndTime->asSeconds(), 3295369510 + $localOffset->asSeconds()); // asTime() $temp = $dateAndTime->asTime(); $this->assertTrue($temp->isEqualTo(Time::withHourMinuteSecond(15, 25, 10))); $this->assertTrue($temp->isEqualTo(Time::withSeconds(55510))); // asTimeStamp() $temp = $dateAndTime->asTimeStamp(); $this->assertTrue($temp->isEqualTo(TimeStamp::withYearMonthDayHourMinuteSecondOffset(2005, 6, 4, 15, 25, 10, Duration::withHours(-5)))); // asUTC() $temp = $dateAndTime->asUTC(); $this->assertTrue($temp->isEqualTo(DateAndTime::withYearMonthDayHourMinuteSecondOffset(2005, 6, 4, 20, 25, 10, Duration::withHours(0)))); // asWeek() $temp = $dateAndTime->asWeek(); $this->assertTrue($temp->isEqualTo(Week::starting($dateAndTime))); // asYear() $temp = $dateAndTime->asYear(); $this->assertTrue($temp->isEqualTo(Year::starting($dateAndTime))); // midnight(); $temp = $dateAndTime->atMidnight(); $this->assertTrue($temp->isEqualTo(DateAndTime::withYearMonthDayHourMinuteSecond(2005, 6, 4, 0, 0, 0))); // middleOf() $dat = DateAndTime::withYearDay(2005, 100); $timespan = $dat->middleOf(Duration::withDays(100)); $start = $timespan->start(); $duration = $timespan->duration(); $end = $timespan->end(); $this->assertEqual($start->dayOfYear(), 50); $this->assertTrue($start->isEqualTo(DateAndTime::withYearDay(2005, 50))); $this->assertEqual($duration->days(), 100); $this->assertEqual($end->dayOfYear(), 149); // to() $datA = DateAndTime::withYearDay(2005, 125); $datB = DateAndTime::withYearDay(2006, 125); $timespan = $datA->to($datB); $this->assertEqual($timespan->startYear(), 2005); $this->assertEqual($timespan->dayOfYear(), 125); $duration = $timespan->duration(); $this->assertTrue($duration->isEqualTo(Duration::withDays(365))); $end = $timespan->end(); $this->assertEqual($end->julianDayNumber(), 2453860); $this->assertEqual($end->julianDayNumber() - $datA->julianDayNumber(), 364); $this->assertEqual($end->year(), 2006); $this->assertEqual($end->dayOfYear(), 124); $this->assertTrue($end->isEqualTo(DateAndTime::withYearDayHourMinuteSecond(2006, 124, 23, 59, 59))); // withOffset() $temp = $dateAndTime->withOffset(Duration::withHours(-7)); $this->assertTrue($temp->isEqualTo(DateAndTime::withYearMonthDayHourMinuteSecondOffset(2005, 6, 4, 15, 25, 10, Duration::withHours(-7)))); }
/** * Answer a Time that represents our time component * * @return object Time * @access public * @since 5/5/05 */ function asTime() { $obj = Time::withSeconds($this->seconds); return $obj; }