предотвратить двойное бронирование в python (проверка расписания) - PullRequest
0 голосов
/ 20 июня 2020

Эта часть кода должна гарантировать, что мы не бронируем мероприятия для сотрудников, которые уже забронированы в указанный период времени.

Если март c забронирован с 9 утра до 11 утра. НЕ должно быть возможности бронировать на c марта с 9:00 до 10:00 или с 7:00 до 9:00 и т. Д. c.

Это условия, при которых:

  1. (currentStart, CurrentEnd) = Начало и конец новой встречи.
  2. event['start']['dateTime'] и event['end']['dateTime'] = Начало и конец встречи, уже зарегистрированной в каллендаре.

Это были условия для второй встречи не должно быть разрешено:

if str2datetime(currentStart) >= str2datetime(event['start']['dateTime'].split('+')[0]) and str2datetime(currentEnd) <= str2datetime(event['end']['dateTime'].split('+')[0]):
    event_done = False
    break

elif str2datetime(currentStart) <= str2datetime(event['start']['dateTime'].split('+')[0]) and str2datetime(currentEnd) <= str2datetime(event['end']['dateTime'].split('+')[0]):
    event_done = False
    break

elif str2datetime(currentStart) >= str2datetime(event['start']['dateTime'].split('+')[0]) and str2datetime(currentEnd) > str2datetime(event['end']['dateTime'].split('+')[0]):
    event_done = False
    break

1 Ответ

0 голосов
/ 20 июня 2020

Проверить, перекрываются ли два диапазона даты и времени, довольно просто. Учитывая 2 диапазона дат и времени a и b - если начало a находится до конца b, а конец a находится после начала b, тогда они перекрываются

a.start < b.end and a.end > b.start
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...