code: public Stream<PlainDate> stream(Duration<CalendarUnit> duration) {
  
          if (this.isEmpty() && duration.isPositive()) {
              return Stream.empty();
          }
  
          DateInterval interval = this.toCanonical();
          PlainDate start = interval.getStartAsCalendarDate();
          PlainDate end = interval.getEndAsCalendarDate();
  
          if ((start == null) || (end == null)) {
              throw new IllegalStateException("Streaming is not supported for infinite intervals.");
          }
  
          return DateInterval.stream(duration, start, end);
  
      }
docs: /*[deutsch]
  <p>Erzeugt einen {@code Stream}, der jeweils ein Kalenderdatum als Vielfaches der Dauer angewandt auf
  den Start und bis zum Ende dieses Intervalls geht. </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 dates which are the result of adding the duration to the start
  @see     #toCanonical()
  @see     #stream(Duration, PlainDate, PlainDate)
  @since   4.18