@Vesax

Как организовать работу с графиками(расписания)?

Есть 2 сущности: Репетитор и ученик.
Репетитор создает свой график, по сути указывает рабочее время вплоть до часов и минут. 3.11.2014 9:00 - 3.11.2014 13:00, например.
Ученик в таком же формате указывает время когда ему удобно заниматься.
Задача - подобрать ученику репетитора, исходя из их графиков.
Вопрос: Как это реализовать?(хранить в бд, обрабатывать)
  • Вопрос задан
  • 2256 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Общий принцип поиска пересечений на двух таких графиках - преобразовать их в один общий список (время начала/конца интервала, код), где код +1 обозначает начало интервала, -1 конец интервала. Затем отсортировать список по времени и пройти по нему считая промежуточную сумму кодов. Там, где сумма становится равной 2 - начинается совпадающий период.
Дальше решение зависит от множества других условий, например минимальной и максимальной продолжительности занятия репетитора с одним учеником, где проводятся занятия - в одном месте, или репетитору надо ездить по ученикам.
Прямого решения здесь может и не быть, по темам "составление расписания занятий" люди дипломные работы пишут.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы