Что делает postInvalidate ()?

Для рассуждений о временных соотношениях (или любых других интервальных соотношениях, приходим к этому), рассмотрим интервальную алгебру Аллена . Он описывает 13 возможных отношений, которые могут иметь два интервала относительно друг друга. Вы можете найти другие ссылки - «Аллен Интервал», похоже, является оперативным поисковым термином. Вы также можете найти информацию об этих операциях в разрабатываемых Time-Oriented приложениях Snodgrass в SQL (PDF доступен онлайн по URL-адресу), а в Date, Darwen и Lorentzos Временные данные и реляционная модель (2002) или Временная и реляционная теория: временные базы данных в реляционной модели и SQL (2014; эффективно второе издание TD & amp; RM).


short (ish) отвечает: заданы два интервала дат A и B с компонентами .start и .end и ограничение .start <= .end, затем два интервала перекрываются, если:

A.end >= B.start AND A.start <= B.end

Вы можете настроить использование >= vs > и <= vs <, чтобы соответствовать вашим требованиям для степени перекрытия.


Комментарии ErikE:

Вы можете получить только 13, если посчитаете забавные вещи ... Я могу получить «15 возможных отношений, которые могут иметь два интервала», когда я схожу с ума. Разумным подсчетом, я получаю только шесть, и если вы выбрасываете заботу о том, стоит ли сначала A или B, я получаю только три (не пересекаюсь, частично пересекаюсь, один полностью внутри другого). 15 выполняется следующим образом: [before: before, start, inside, end, after], [start: start, inside, end, after], [внутри: внутри, после, после], [конец: конец, после], [ после того, как: после].

Я думаю, что вы не можете считать две записи «до: до» и «после: после». Я мог бы увидеть 7 записей, если вы приравняете некоторые отношения со своими обратными (см. Диаграмму в указанном URL-адресе Википедии, имеет 7 записей, 6 из которых имеют разные обратные значения, причем они не имеют четкого обратного). И то, насколько три разумны, зависит от ваших требований.

----------------------|-------A-------|----------------------
    |----B1----|
           |----B2----|
               |----B3----|
               |----------B4----------|
               |----------------B5----------------|
                      |----B6----|
----------------------|-------A-------|----------------------
                      |------B7-------|
                      |----------B8-----------|
                         |----B9----|
                         |----B10-----|
                         |--------B11--------|
                                      |----B12----|
                                         |----B13----|
----------------------|-------A-------|----------------------

60
задан Pops 10 August 2012 в 07:27
поделиться