code: public YearMonth plusMonths(long monthsToAdd) {
          if (monthsToAdd == 0) {
              return this;
          }
          long monthCount = year * 12L + (month - 1);
          long calcMonths = monthCount + monthsToAdd;  // safe overflow
          int newYear = YEAR.checkValidIntValue(Jdk8Methods.floorDiv(calcMonths, 12));
          int newMonth = Jdk8Methods.floorMod(calcMonths, 12) + 1;
          return with(newYear, newMonth);
      }
docs: Returns a copy of this year-month with the specified period in months added.
  <p>
  This instance is immutable and unaffected by this method call.
  
  @param monthsToAdd  the months to add, may be negative
  @return a {@code YearMonth} based on this year-month with the months added, not null
  @throws DateTimeException if the result exceeds the supported range