@Override
    public Temporal subtractFrom(Temporal temporal) {
        if (months != 0) {
            temporal = temporal.minus(months, MONTHS);
        }
        return temporal;
    }
@ Override public Temporal subtractFrom ( Temporal temporal ) { if ( months != 0 ) { temporal = temporal . minus ( months , MONTHS ) ; } return temporal ; }
Subtracts this amount from the specified temporal object.
<p>
This returns a temporal object of the same observable type as the input
with this amount subtracted.
<p>
In most cases, it is clearer to reverse the calling pattern by using
{@link Temporal#minus(TemporalAmount)}.
<pre>
// these two lines are equivalent, but the second approach is recommended
dateTime = thisAmount.subtractFrom(dateTime);
dateTime = dateTime.minus(thisAmount);
</pre>
<p>
Only non-zero amounts will be subtracted.
<p>
This instance is immutable and unaffected by this method call.

@param temporal  the temporal object to adjust, not null
@return an object of the same type with the adjustment made, not null
@throws DateTimeException if unable to subtract
@throws UnsupportedTemporalTypeException if the MONTHS unit is not supported
@throws ArithmeticException if numeric overflow occurs