/** * @dataProvider data_subtractFrom */ public function test_subtractFrom_usingLocalDateMinus(Period $period, LocalDate $baseDate, LocalDate $expected) { $this->assertEquals($baseDate->minusAmount($period), $expected); }
/** * Returns a copy of this date-time with the specified amount subtracted. * <p> * This returns a {@code LocalDateTime}, based on this one, with the specified amount subtracted. * The amount is typically {@link Period} or {@link Duration} but may be * any other type implementing the {@link TemporalAmount} interface. * <p> * The calculation is delegated to the amount object by calling * {@link TemporalAmount#subtractFrom(Temporal)}. The amount implementation is free * to implement the subtraction in any way it wishes, however it typically * calls back to {@link #minus(long, TemporalUnit)}. Consult the documentation * of the amount implementation to determine if it can be successfully subtracted. * <p> * This instance is immutable and unaffected by this method call. * * @param TemporalAmount $amountToSubtract the amount to subtract, not null * @return LocalDateTime a {@code LocalDateTime} based on this date-time with the subtraction made, not null * @throws DateTimeException if the subtraction cannot be made * @throws ArithmeticException if numeric overflow occurs */ public function minusAmount(TemporalAmount $amountToSubtract) { if ($amountToSubtract instanceof Period) { $periodToSubtract = $amountToSubtract; return $this->_with($this->date->minusAmount($periodToSubtract), $this->time); } return $amountToSubtract->subtractFrom($this); }