/**
  * Answer the modification date/time
  * 
  * @return object DateAndTime
  * @access public
  * @since 5/13/08
  */
 public function getModificationDate()
 {
     $tstamp = filemtime($this->path);
     if ($tstamp === false) {
         throw new OperationFailedException("Could not get timestamp of '" . $this->getBaseName() . "'.");
     }
     return TimeStamp::fromUnixTimeStamp($tstamp)->asDateAndTime();
 }
 /**
  * Answer the date when this theme was last modified.
  * 
  * @return object DateAndTime
  * @access public
  * @since 5/13/08
  */
 public function getModificationDate()
 {
     return TimeStamp::fromUnixTimeStamp($this->getRecentModTime($this->path));
 }
 /**
  * Test conversion from Unix timestamps
  * 
  */
 function test_from_unix_timestamp()
 {
     $timestamp = TimeStamp::fromUnixTimeStamp(0);
     $unixEpoch = TimeStamp::withYearMonthDayHourMinuteSecondOffset(1970, 1, 1, 0, 0, 0, Duration::zero());
     $this->assertTrue($timestamp->isEqualTo($unixEpoch));
     $this->assertEqual($timestamp, $unixEpoch);
     $this->assertEqual($timestamp->year(), 1970);
     $this->assertEqual($timestamp->month(), 1);
     $this->assertEqual($timestamp->dayOfMonth(), 1);
     $this->assertEqual($timestamp->hour(), 0);
     $this->assertEqual($timestamp->minute(), 0);
     $this->assertEqual($timestamp->second(), 0);
     $this->assertEqual($timestamp->asUnixTimeStamp(), 0);
     $unixTimeStamp = time();
     $timestamp = TimeStamp::fromUnixTimeStamp($unixTimeStamp);
     $this->assertEqual($timestamp->year(), date('Y', $unixTimeStamp));
     $this->assertEqual($timestamp->month(), date('m', $unixTimeStamp));
     $this->assertEqual($timestamp->dayOfMonth(), date('j', $unixTimeStamp));
     $this->assertEqual($timestamp->hour(), date('H', $unixTimeStamp) - date('Z', $unixTimeStamp) / 3600);
     $this->assertEqual($timestamp->minute(), date('i', $unixTimeStamp));
     $this->assertEqual($timestamp->second(), date('s', $unixTimeStamp));
     $this->assertEqual($timestamp->asUnixTimeStamp(), $unixTimeStamp);
 }