code: public YearMonthDay withField(DateTimeFieldType fieldType, int value) {
          int index = indexOfSupported(fieldType);
          if (value == getValue(index)) {
              return this;
          }
          int[] newValues = getValues();
          newValues = getField(index).set(this, index, newValues, value);
          return new YearMonthDay(this, newValues);
      }
docs: Returns a copy of this date with the specified field set to a new value.
  <p>
  For example, if the field type is <code>dayOfMonth</code> then the day
  would be changed in the returned instance.
  <p>
  These three lines are equivalent:
  <pre>
  YearMonthDay updated = ymd.withField(DateTimeFieldType.dayOfMonth(), 6);
  YearMonthDay updated = ymd.dayOfMonth().setCopy(6);
  YearMonthDay updated = ymd.property(DateTimeFieldType.dayOfMonth()).setCopy(6);
  </pre>
  
  @param fieldType  the field type to set, not null
  @param value  the value to set
  @return a copy of this instance with the field set
  @throws IllegalArgumentException if the value is null or invalid