2016-12-21 2 views
0

J'ai une zone de texte que l'utilisateur peut entrer dans les heures d'estimation, par exemple, il pourrait être 150 heures. Comment puis-je formater cette fois? Le temps formate automatiquement 00:00:00 Si je rentre dans 150 heures, il passe à 34.22:59:59Temps de format supérieur à 24 heures

TimeSpan tmpEstimate; 
TimeSpan? TimeEstimate; 

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

L'utilisateur n'entrera dans les heures, donc je ne pas besoin de formater les minutes ou secondes, mais le champ pourrait également être laissé vide donc il doit accepter une heure nulle à

Répondre

4

Peut-être qu'il est préférable d'utiliser double valeur pour l'entrée, pas time?

OU

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

Plus complet: 'double tmpEstimate; if (double.TryParse (txtEstimateHrs.Text, out tmpEstimate)) {TimeEstimate = TimeSpan.FromHours (tmpEstimate); } sinon {TimeEstimate = null; } 'Le champ de texte vide ira à la branche' else' comme désiré. –

+0

@JeppeStigNielsen merci, est libre de modifier les réponses. au moins, mon :) – Backs

+0

TimeEstimate met toujours en forme les heures. Si j'entre 150 TimeEstimate change le 150 à '6.06: 00: 00' – user123456789

1

Si vous n'êtes intéressé que par les heures, puis jeter un oeil à TimeSpan.FromHours(), qui prend un certain nombre d'heures et vous fait un objet TimeSpan pour cette valeur uniquement. Si la valeur est null, vous pouvez gérer cela séparément.