2013-12-02 5 views
2

как заставить систему распознавать, даже если я вводил только отдельные данные за время? я хочу, чтобы пользователь мог ввести один номер (2 или 3), и он распознает его как 02:00 или 03:00. В настоящее время она работает идеально, если пользователь вставить 02 или 03.Вставить одно целое число как функцию времени

starttime = DateTime.ParseExact(txtStart2.Text, "HH", CultureInfo.InvariantCulture); 
endtime = DateTime.ParseExact(txtEnd2.Text, "HH", CultureInfo.InvariantCulture); 
Label3.Text = starttime.ToShortTimeString(); 
Label4.Text = endtime.ToShortTimeString(); 

ответ

0

Вы должны дать единый "H" вместо "HH" за час принимать одноразрядный час.

starttime = DateTime.ParseExact(txtStart2.Text, "%H%", CultureInfo.InvariantCulture); 

Редактировать Если вы даете одну цифру за час она рассматривается как не формат даты и времени только час.

Если «ч» спецификатор формата используется без другого пользовательского формата спецификаторов, он интерпретируется как стандартный формат даты и времени спецификатора и бросает FormatException, MSDN.

Чтобы дать одну цифру, вы должны изменить формат строки путем добавления пространства знака%

Строка пользовательский формат даты и времени состоит из двух или более символов. Методы форматирования даты и времени интерпретируют любую односимвольную строку как стандартную строку формата даты и времени. Если они не распознают символ как допустимый спецификатор формата, то они выдают исключение FormatException. Например, строка формата, которая состоит из , только спецификатора «h» интерпретируется как стандартная дата и время формат строки. Однако в этом конкретном случае исключение составляет , потому что нет стандартного формата даты и времени «h» . Чтобы использовать любые пользовательские спецификаторы формата даты и времени, как , единственный спецификатор в строке формата (то есть, для использования «d», «f», «F», «g», «h», «H "," K "," m "," M "," s "," t "," y "," z ",": "или"/" ), включают пробел перед или после спецификатор или включить спецификатор формата процента ("%") до одного специального спецификатора даты и времени, MSDN.

+0

Ваш код бросает исключение исключения FormatException: строка ввода не была в правильном формате .. –

+0

Я обновил свой ответ, пожалуйста, посмотрите. – Adil

Смежные вопросы