Информация об изменениях

Сообщение Re[5]: Хэш для диапазона дат от 23.03.2017 10:18

Изменено 23.03.2017 10:19 Serginio1

Re[5]: Хэш для диапазона дат
Здравствуйте, Sinclair, Вы писали:


S>Допустим, нам известны диапазоны d1 и d2, а также их хеши h1 и h2.

S>Покажите код функции, которая определяет, пересекаются ли диапазоны:
S>
S>public static boolean AreIntersecting(DateRange d1, DateRange d2, int h1, int h2)
S>{
S>  if(SomeFunction(h1, h2))
S>  {  /// вот тут мы типа ускоряем проверку благодаря использованию хешей
S>     return ???
S>  } else // идём по "медленной" ветке 
S>     return (d1.Start <= d2.End)  && (d1.End >= d2.Start)
S>}
S>


Нам нужен 1 дата. Как правило идут набор дат d1, d2, d3, ... dn
Достаточно выполнить запрос Select max(date) from даты where date <= искомая дата

Другое дело, что диапазоны могут быть с пробелами. Но это уже экзотика
Re[5]: Хэш для диапазона дат
Здравствуйте, Sinclair, Вы писали:


S>Допустим, нам известны диапазоны d1 и d2, а также их хеши h1 и h2.

S>Покажите код функции, которая определяет, пересекаются ли диапазоны:
S>
S>public static boolean AreIntersecting(DateRange d1, DateRange d2, int h1, int h2)
S>{
S>  if(SomeFunction(h1, h2))
S>  {  /// вот тут мы типа ускоряем проверку благодаря использованию хешей
S>     return ???
S>  } else // идём по "медленной" ветке 
S>     return (d1.Start <= d2.End)  && (d1.End >= d2.Start)
S>}
S>


Нам нужен 1 дата. Как правило идут набор дат d1, d2, d3, ... dn
Достаточно выполнить запрос Select max(date) from даты where date <= искомая дата

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

Другое дело, что диапазоны могут быть с пробелами. Но это уже экзотика