2016-12-21 3 views
0

У меня есть текстовое поле, которое пользователь может ввести в часы оценки, например, может быть 150 часов. Как мне форматировать это время? Время автоматически форматирует до 00:00:00 так Если я вхожу в 150 часов он переходит в 34.22:59:59Время форматирования более 24 часов

TimeSpan tmpEstimate; 
TimeSpan? TimeEstimate; 

if (TimeSpan.TryParse(txtEstimateHrs.Text, out tmpEstimate)) 
    TimeEstimate = tmpEstimate; 
else 
    TimeEstimate = null; 

пользователь будет вводить только в течение нескольких часов, так что я не нужно форматировать минуты или секунды, но поле также может быть оставлено пустым, поэтому ему необходимо принять нулевое время до

ответ

4

Возможно, лучше использовать значение double для ввода, а не time?

ИЛИ

double? TimeEstimate = null; 
double tmpEstimate; 
if (double.TryParse(txtEstimateHrs.Text, out tmpEstimate)) 
{ 
    TimeEstimate = tmpEstimate; 
} 
+0

Подробнее: 'double tmpEstimate; if (double.TryParse (txtEstimateHrs.Text, out tmpEstimate)) {TimeEstimate = TimeSpan.FromHours (tmpEstimate); } else {TimeEstimate = null; } 'Пустое текстовое поле по желанию переходит в ветвь' else'. –

+0

@JeppeStigNielsen спасибо, не стесняйтесь редактировать ответы. по крайней мере, мой :) – Backs

+0

TimeEstimate по-прежнему форматирует часы. Если я вношу 150 изменений TimeEstimate, то от 150 до '6.06: 00: 00' – user123456789

1

Если вы заинтересованы только в течение нескольких часов, то посмотрите на TimeSpan.FromHours(), которая занимает несколько часов и делает вас объект TimeSpan только для этого значения. Если значение равно null, вы можете обрабатывать его отдельно.

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