Returns a copy of this {@code LocalDate} with the specified period in months added.
This method adds the specified amount to the months field in three steps:
- Add the input months to the month-of-year field
- Check if the resulting date would be invalid
- Adjust the day-of-month to the last valid day if necessary
For example, 2007-03-31 plus one month would result in the invalid date 2007-04-31. Instead of returning an invalid result, the last valid day of the month, 2007-04-30, is selected instead.
This instance is immutable and unaffected by this method call.
@param monthsToAdd the months to add, may be negative
@return a {@code LocalDate} based on this date with the months added, not null
@throws DateTimeException if the result exceeds the supported date range