code: public Period plus(TemporalAmount amountToAdd) {
          Period isoAmount = Period.from(amountToAdd);
          return create(
                  Math.addExact(years, isoAmount.years),
                  Math.addExact(months, isoAmount.months),
                  Math.addExact(days, isoAmount.days));
      }
docs: Returns a copy of this period with the specified period added.
  <p>
  This operates separately on the years, months and days.
  No normalization is performed.
  <p>
  For example, "1 year, 6 months and 3 days" plus "2 years, 2 months and 2 days"
  returns "3 years, 8 months and 5 days".
  <p>
  The specified amount is typically an instance of {@code Period}.
  Other types are interpreted using {@link Period#from(TemporalAmount)}.
  <p>
  This instance is immutable and unaffected by this method call.
  
  @param amountToAdd  the amount to add, not null
  @return a {@code Period} based on this period with the requested period added, not null
  @throws DateTimeException if the specified amount has a non-ISO chronology or
  contains an invalid unit
  @throws ArithmeticException if numeric overflow occurs