Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2010, 17:02   #1
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию Пересечение дат

Есть два промежутка дат BeginDate1, EndDate1 и BeginDate2, EndDate2 типа TDateTime - они не константы, я их получаю прогаммно. Нужно узнать пересекаются ли эти даты. Не могу сообразить под конец дня, уже голова не варит.
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 02.06.2010, 18:16   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

даты не могут пересекаться в принципе (ну, если они не равны друг другу )
Пересекаться могут периоды, заданные этим датами. (назовём их период1 и период2)
Возможны всего 4-ре варианта.
— период1 полностью входит в период2 (в этом случае выполняется условие begPer2<=begPer1 and EndPer1<=EndPer2
— период2 полностью входит в период1 (в этом случае выполняется условие begPer1<=begPer2 and EndPer2<=EndPer1
— период1 начинается раньше, чем период2 и заканчивается внутри периода2:
begPer1 <= begPer2 and EndPer1>begPer2 and EndPer1<EndPer2
— период1 начинается внутри период2 и заканчивается после окончания периода:
BegPer1>begPer2 and BegPer1<EndPer2 and EndPer1 >=EndPer2


уф... вроде бы ничего не напутал...
p.p. Даты начала и окончания обоих периодов должны быть в хронологическом порядке!
строго:
BegPer1 < EndPer1
BegPer2 < EndPer2


p.p.s. знаки нестрого равенства у словиях проверок можно убавлять/добавлять по вкусу, в зависимости от того, допускается ли совпадение дат периодов!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
пересечение массивов на С++ drakon803 Помощь студентам 4 09.12.2012 10:29
Пересечение отрезков Пaвeл Помощь студентам 1 30.04.2010 05:46
Пересечение двух строк DarkMage Общие вопросы C/C++ 5 18.04.2010 18:27
Пересечение графиков Foxx Microsoft Office Excel 5 01.04.2010 22:38
Пересечение строки и столбца ... Microsoft Office Excel 1 11.11.2008 10:02