code: public boolean intersects(ChronoInterval<T> other) {
  
          if (this.isEmpty() || other.isEmpty()) {
              return false;
          }
  
          boolean startALessEqEndB = (this.getStart().isInfinite() || other.getEnd().isInfinite());
  
          if (!startALessEqEndB) {
              T startA = this.getClosedFiniteStart();
              if (other.getEnd().isOpen()) {
                  startALessEqEndB = startA.isBefore(other.getEnd().getTemporal());
              } else {
                  startALessEqEndB = !startA.isAfter(other.getEnd().getTemporal());
              }
          }
  
          if (!startALessEqEndB) {
              return false;
          }
  
          boolean startBLessEqEndA = (other.getStart().isInfinite() || this.getEnd().isInfinite());
  
          if (!startBLessEqEndA) {
              T startB = getClosedFiniteStart(other.getStart(), this.getTimeLine());
              if (this.getEnd().isOpen()) {
                  startBLessEqEndA = startB.isBefore(this.getEnd().getTemporal());
              } else {
                  startBLessEqEndA = !startB.isAfter(this.getEnd().getTemporal());
              }
          }
  
          return startBLessEqEndA;
  
      }
docs: /*[deutsch]
  <p>Ermittelt, ob dieses Intervall sich mit dem angegebenen Intervall so &uuml;berschneidet, da&szlig;
  mindestens ein gemeinsamer Zeitpunkt existiert. </p>
  
  @param   other   another interval which might have an intersection with this interval
  @return  {@code true} if there is an non-empty intersection of this interval and the other one else {@code false}
  @since   3.19/4.15
  @see     #findIntersection(ChronoInterval)
  @see     #overlaps(IsoInterval)
  @see     #isBefore(ChronoInterval)
  @see     #isAfter(ChronoInterval)