code: public static TemporalAdjuster ofDateAdjuster(UnaryOperator<LocalDate> dateBasedAdjuster) {
          Objects.requireNonNull(dateBasedAdjuster, "dateBasedAdjuster");
          return (temporal) -> {
              LocalDate input = LocalDate.from(temporal);
              LocalDate output = dateBasedAdjuster.apply(input);
              return temporal.with(output);
          }
docs: Obtains a {@code TemporalAdjuster} that wraps a date adjuster.
  <p>
  The {@code TemporalAdjuster} is based on the low level {@code Temporal} interface.
  This method allows an adjustment from {@code LocalDate} to {@code LocalDate}
  to be wrapped to match the temporal-based interface.
  This is provided for convenience to make user-written adjusters simpler.
  <p>
  In general, user-written adjusters should be static constants:
  <pre>{@code
  static TemporalAdjuster TWO_DAYS_LATER =
  TemporalAdjusters.ofDateAdjuster(date -> date.plusDays(2));
  }</pre>
  
  @param dateBasedAdjuster  the date-based adjuster, not null
  @return the temporal adjuster wrapping on the date adjuster, not null