Что считается полным идентификатором тега / элемента?

Математическое решение, данное @Bretana, является хорошим, но пренебрегает двумя конкретными деталями:

  1. аспект закрытых или полуоткрытых интервалов
  2. пустых интервалов

О закрытом или открытом состоянии интервальных границ, решение @Bretana, действительное для закрытых интервалов

(StartA & lt; = EndB) и (EndA> = StartB)

можно переписать для полуоткрытых интервалов:

(StartA & lt; EndB) и (EndA> StartB)

Эта коррекция необходима, потому что граница открытого интервала по определению не относится к диапазону значений интервала.


И о пустых интервалах, ну, вот соотношение, показанное выше НЕ держится. Пустые интервалы, которые не содержат допустимого значения по определению, должны обрабатываться как особый случай. Я продемонстрирую это по моей библиотеке времени Java Time4J в этом примере:

MomentInterval a = MomentInterval.between(Instant.now(), Instant.now().plusSeconds(2));
MomentInterval b = a.collapse(); // make b an empty interval out of a

System.out.println(a); // [2017-04-10T05:28:11,909000000Z/2017-04-10T05:28:13,909000000Z)
System.out.println(b); // [2017-04-10T05:28:11,909000000Z/2017-04-10T05:28:11,909000000Z)

Ведущая квадратная скобка «[» означает закрытое начало, а последняя скобка «)» указывает на открытый конец.

System.out.println(
      "startA < endB: " + a.getStartAsInstant().isBefore(b.getEndAsInstant())); // false
System.out.println(
      "endA > startB: " + a.getEndAsInstant().isAfter(b.getStartAsInstant())); // true

System.out.println("a overlaps b: " + a.intersects(b)); // a overlaps b: false

Как показано выше, пустые интервалы нарушают вышеперечисленное условие перекрытия (особенно startA & lt; endB), поэтому Time4J (и другие библиотеки тоже) должны обрабатывать его как специальный фронт в чтобы гарантировать, что перекрытие любого произвольного интервала с пустым интервалом не существует. Конечно, интервалы дат (которые закрыты по умолчанию в Time4J, но могут быть полуоткрытыми, также как и пустые интервалы даты) обрабатываются аналогичным образом.

0
задан user1271930 16 January 2019 в 11:45
поделиться