code: public I withStart(UnaryOperator<T> operator) {
  
          if (this.start.isInfinite()) {
              throw new IllegalStateException("Operator cannot be applied on an infinite interval boundary.");
          }
  
          IntervalEdge edge = this.start.getEdge();
          Boundary<T> b = Boundary.of(edge, operator.apply(this.start.getTemporal()));
          return this.getFactory().between(b, this.end);
  
      }
docs: /*[deutsch]
  <p>Liefert eine Kopie dieses Intervalls mit dem angegebenen Operator angewandt
  auf die Startzeit. </p>
  
  @param   operator    operator to be applied on the start
  @return  changed copy of this interval
  @throws  IllegalStateException if the start boundary is infinite
  @throws  IllegalArgumentException if new start is after end
  @see     #withEnd(UnaryOperator)
  @since   4.18