code: public Stream<PlainTimestamp> stream(Duration<?> duration) {
  
          TimestampInterval interval = this.toCanonical();
          PlainTimestamp start = interval.getStartAsTimestamp();
          PlainTimestamp end = interval.getEndAsTimestamp();
  
          if ((start == null) || (end == null)) {
              throw new IllegalStateException("Streaming is not supported for infinite intervals.");
          }
  
          return TimestampInterval.stream(duration, start, end);
  
      }
docs: /*[deutsch]
  <p>Erzeugt einen {@code Stream}, der jeweils einen Zeitstempel als Vielfaches der Dauer angewandt auf
  den Start und bis zum Ende dieses Intervalls geht. </p>
  
  <p>Die Gr&ouml;&szlig;e des {@code Stream} ist maximal {@code Integer.MAX_VALUE - 1}, ansonsten wird
  eine {@code ArithmeticException} geworfen. </p>
  
  @param   duration    duration which has to be added to the start multiple times
  @throws  IllegalArgumentException if the duration is not positive
  @throws  IllegalStateException if this interval is infinite or if there is no canonical form
  @return  stream consisting of distinct timestamps which are the result of adding the duration to the start
  @see     #toCanonical()
  @see     #stream(Duration, PlainTimestamp, PlainTimestamp)
  @since   4.18