code: public MonthDay with(Month month) {
          Jdk8Methods.requireNonNull(month, "month");
          if (month.getValue() == this.month) {
              return this;
          }
          int day = Math.min(this.day, month.maxLength());
          return new MonthDay(month.getValue(), day);
      }
docs: Returns a copy of this {@code MonthDay} with the month-of-year altered.
  <p>
  This returns a month-day with the specified month.
  If the day-of-month is invalid for the specified month, the day will
  be adjusted to the last valid day-of-month.
  <p>
  This instance is immutable and unaffected by this method call.
  
  @param month  the month-of-year to set in the returned month-day, not null
  @return a {@code MonthDay} based on this month-day with the requested month, not null