Сообщение Re[5]: Хэш для диапазона дат от 23.03.2017 10:18
Изменено 23.03.2017 10:19 Serginio1
Re[5]: Хэш для диапазона дат
Здравствуйте, Sinclair, Вы писали:
S>Допустим, нам известны диапазоны d1 и d2, а также их хеши h1 и h2.
S>Покажите код функции, которая определяет, пересекаются ли диапазоны:
S>
Нам нужен 1 дата. Как правило идут набор дат d1, d2, d3, ... dn
Достаточно выполнить запрос Select max(date) from даты where date <= искомая дата
Другое дело, что диапазоны могут быть с пробелами. Но это уже экзотика
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>
Нам нужен 1 дата. Как правило идут набор дат d1, d2, d3, ... dn
Достаточно выполнить запрос Select max(date) from даты where date <= искомая дата
Обычно так поступают при группировках по месяцам, кварталам, годам ....
Другое дело, что диапазоны могут быть с пробелами. Но это уже экзотика
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 <= искомая дата
Обычно так поступают при группировках по месяцам, кварталам, годам ....
Другое дело, что диапазоны могут быть с пробелами. Но это уже экзотика