public function testIntervalSpecIgnoresBadDays()
 {
     $expected = '2 years or (unknown) days';
     $input = '%y years or %a days';
     $tint = new TimeInterval('P2Y-730');
     $actual = $tint->format($input);
     $this->assertSame($expected, $actual);
 }
 /**
  * @param TimePoint $start
  * @param TimeInterval $interval
  * @param TimePoint $end
  * @param int $options
  */
 public function __construct(TimePoint $start, TimeInterval $interval, TimePoint $end, $options = 0)
 {
     $startDt = $this->timePointToDateTime($start);
     $intervalDi = new DateInterval($interval->intervalSpec());
     $endDt = $this->timePointToDateTime($end);
     $this->datePeriod = new DatePeriod($startDt, $intervalDi, $endDt, $options);
     $this->iterator = new IteratorIterator($this->datePeriod);
 }
 /**
  * @param TimeInterval $interval
  *
  * @return TimePoint
  */
 public function sub(TimeInterval $interval)
 {
     $date = clone $this->date;
     $int = new DateInterval($interval->intervalSpec());
     $date->sub($int);
     return $this->dateTimeToTimePoint($date);
 }