Example #1
0
 /**
  * Subtract a duration to this one. If $duration is greather than or equal to
  * the current duration, a duration of 0 seconds is returned.
  *
  * For instance P2S - P1S = P1S
  */
 public function sub(QtiDuration $duration)
 {
     if ($duration->longerThanOrEquals($this) === true) {
         $this->setInterval(new DateInterval('PT0S'));
     } else {
         $refStrDate = '@0';
         $tz = new DateTimeZone(self::TIMEZONE);
         $d1 = new DateTime($refStrDate, $tz);
         $d2 = new DateTime($refStrDate, $tz);
         $d1->add(new DateInterval($this->__toString()));
         $d2->add(new DateInterval($duration->__toString()));
         $interval = $d1->diff($d2);
         $this->setInterval($interval);
     }
 }
Example #2
0
 /**
  * @dataProvider longerThanOrEqualsProvider
  *
  * @param Duration $duration1
  * @param Duration $duration2
  * @param boolean $expected
  */
 public function testLongerThanOrEquals(QtiDuration $duration1, QtiDuration $duration2, $expected)
 {
     $this->assertSame($expected, $duration1->longerThanOrEquals($duration2));
 }