Проверка, чтобы убедиться, что разница во времени составляет 2 часа

#c# #javascript #asp.net #visual-studio #validation

#c# #javascript #asp.net #visual-studio #проверка

Вопрос:

У меня есть время начала и время окончания в моем asp.net веб-приложение. Теперь я хочу проверить, что если выбрано время начала, скажем, 10: 00 утра, то время окончания должно быть выбрано с интервалом в 2 часа или меньше. Следовательно, если я выберу 01: 00 вечера в качестве времени окончания, то этого не должно произойти.

Как я могу проверить то же самое?

Комментарии:

1. Вы исследовали пользовательские средства проверки?

2. Да, но я не уверен, как это работает при проверке времени

Ответ №1:

Если вы используете сложение или вычитание в классе DateTime, он возвращает интервал времени, который можно сравнить в условном выражении.

При создании нового класса TimeSpan вы можете задать часы, минуеты и секунды в этой форме:

 new TimeSpan(hours, minutes, seconds);
  

В вашем случае вы хотите использовать:

 new TimeSpan(2, 0, 0);
  

Попробуйте что-то вроде этого:

 //Assuming you created your variables and assigned them somewhere above
DateTime startTime, endTime;
if(endTime - startTime > new TimeSpan(2, 0, 0)) {
    //validation error
}
  

Ответ №2:

  1. Используйте CompareValidator с type=DateTime, чтобы убедиться, что EndTime > beginTime. Это также подтвердит, что они оба являются допустимыми значениями времени.
  2. Используйте пользовательский валидатор (C # и, необязательно, JavaScript) для обеспечения соблюдения правила 2 часов.
  3. При необходимости добавьте 1 или 2 RequiredFieldValidators

Комментарии:

1. Как использовать customvalidator для обеспечения соблюдения правила 2 часов?

2. Просто дважды щелкните и запишите событие C #: расшифруйте строки из 2 текстовых полей, вычтите, проверьте разницу. Общее количество минут < 120.

Ответ №3:

Как уже упоминалось, вы можете использовать пользовательскую реализацию проверки. Это позволит проверить, что текущее время, выбранное ‘start’, было не более чем за 2 часа до этого (или точно зависит от ваших условий).

Еще одна вещь, на которую следует обратить внимание, это «проверка диапазона», которая должна соответствовать вашим требованиям. Посмотрите примеры здесь, в MSDN: http://msdn.microsoft.com/en-us/library/aa479013.aspx#aspnet-validateaspnetservercontrols_topic5