Алгоритм проверки пересечения двух периодов #261628


#0 by Голодный студент
Есть два периода. Нужно проверить пересекаются ли они. Первый период: Начало1 - Конец1 Второй период: Начало2 - Конец2. Кому не влом, проверьте мою логику. А то сомнения какие то.... Подскажите, что не так. Как то криво вроде работает... Делаю так: ((&Начало1 >= Начало2) И (&Начало1 <= Конец2) и (&Конец1 > Конец2)) Повторюсь, задача стоит в том чтоб выяснить пересекаются ли два периода времени или нет...
#1 by Три буквы
#2 by Три буквы
то есть, проверяем, принадлежит ли конец одного из отрезков другому.
#3 by Три буквы
поскольку, верно и обратное - если отрезки пересекаются, то конец одного из отрезков обязательно содержится в другом - то этой проверки достаточно
#4 by Голодный студент
Неправильно. Конец может не принадлежать, но периоды могут все равно пересекаться...
#5 by Три буквы
пример?
#6 by Голодный студент
2. 05.02.83 - 15.02.83 пересекаются, хотя конец второго периода не принадлежит первому отрезку времени...
#7 by igork1966
10.01.2007-20.01.2007  и 01.01.2007-30.01.2007
#8 by Голодный студент
+1
#9 by Три буквы
начало первого отрезка (10/01/2007) внутри второго, то есть вторая часть или в . начало второго (05/02/83) внутри первого, то есть, первая часть ИЛИ в +более того, если отрезки пересекаются, то начало(именно начало) одного из них обязательно принадлежит другому.
#10 by TormozIT
Типичная задачка для проверки сообразительности соискателя. Советую всем заучить этот алгоритм на зубок ;-)
#11 by Feofan
я бы так сделал: 1 - сравнивается НачПер1 и НачПер2, определяется который раньше, допустим НачПер1 2 - Если КонПер1 > НачПер2 значит пересекаются, иначе - нет.
#12 by Feofan
Ну, или переходя на 1с:
#13 by Голодный студент
Догнал:) Спасибо большое !
#14 by France
Студент, признавайся - дали тестовое задание в рарусе?
#15 by Vozhd
Ужасно...
#16 by Feofan
зато всего 2 раза проверка условия идет
#17 by Vozhd
Зачем так много сравнений?
#18 by Feofan
текста может и много, а выполняться зато быстрее будет чем . Предложи более быстрый вариант
#19 by Голодный студент
Нет. Мне это нужно для конфигурации "Аренда оборудования". Когда документ проводят, мне нужно проверить, а не занято ли оборудование в определенный период времени, если занято то не давать провести документ. А что, когда в Рарусе дают тестовое задание, то разрешают пользоваться инетом ?
#20 by cost10
А если так?
#21 by АП
блин не успел написать :)
#22 by Vozhd
Можно еще короче!
#23 by АП
низя ... короче 22см никак низя ;)
#24 by Vozhd
22 см - это то, чем думается или того, чем по клавиатуре долбится? :-)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С