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