Как проверить время встречи в C # - PullRequest
0 голосов
/ 10 июля 2009

У меня время встречи начинается с 6.00 до 21.00 в раскрывающемся списке с сохранением значения раскрывающегося списка с 1 до 6.00 и с 2 до 6.30 утра ...... до 21.00. число, так как трудно играть с AM и PM, поэтому в базе данных он хранится как число. Время от времени выпадает 2 ... Я не хочу, чтобы встреча проходила частично. Например, если с 6:00 до 9:00 утра уже создано. Я не хочу создавать другую встречу с 6:30 до 10:00 ... Как проверить пересекающуюся встречу ... может ли кто-нибудь мне помочь ... Я использую asp.net с c # и SQL Server 2005 на заднем плане. ...

Ответы [ 4 ]

1 голос
/ 10 июля 2009

Я проверяю это с помощью этого SQL:

select count(*) from Appointment_data 
where 
  (ad_time_to > @SelectedTimeFrom) and (ad_time_from < @ SelectedTimeTo)

Этот запрос имеет 0 результатов, если не встречается одновременно.

0 голосов
/ 10 июля 2009

Я бы, наверное, имел такую ​​таблицу:

Meetings
--------
Unique_ID
Meeting_Date
Start_Time
End_Time

Тогда я бы создал хранимую процедуру, которая бы извлекала все собрания, которые в определенном диапазоне дат, т.е.

Select Count(*) from Meetings where Meeting_Date=@date and Start_Time >= @startTime and Start_Time < @endTime Or End_Time > @startTime and End_Time < @endTime

Если из этого запроса вы возвращаете какие-либо результаты, то вы знаете, что введенное время либо перекрывает существующее собрание, либо совпадает с другим.

0 голосов
/ 10 июля 2009

По другим. Было бы лучше использовать объект DateTime, но я также добавил бы, что вы должны придерживаться UTC для всех вычислений и хранения и преобразовывать в местное время для взаимодействия с пользователем. Таким образом, вам не нужно беспокоиться об изменениях часовых поясов, високосных днях или изменениях в летнее время.

0 голосов
/ 10 июля 2009

Будет проще использовать объект DateTime; тогда вы можете проверить, как показано ниже.

  1. Проверка существующих расписаний собраний, у которых время начала меньше, чем новое время - заботится о 6:30, когда у вас назначено одно собрание в 6:00.

    1. Если время начала в порядке, ищите время окончания, не превышающее время начала, предусмотренное сценарием - время начала и окончания 5 утра после другого запланированного совещания (с 6 часами утра).

если эти критерии соблюдены, вы можете разрешить запланировать новое собрание.

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