2017-08-29 4 views
1

Je veux afficher TimeSpan sur la boucle de 30 minutes à travers et seulement montrer comme ceci:Comment afficher TimeSpan 30 minutes

00:00 

00:30 

01:00 

01:30 

Ceci est mon code:

<select class="form-control dropdown guestTitle"> 
 
\t @{ 
 
\t 
 
\t \t TimeSpan StartTime = TimeSpan.FromHours(0); 
 
\t \t <option>00:00</option> 
 
\t \t for (int i = 0; i < 24; i++) 
 
\t \t { 
 
\t \t \t StartTime = StartTime.Add(new TimeSpan(00,30,0)); 
 
\t \t \t <option>@StartTime</option> 
 
\t \t }      
 
\t }                       
 
</select>

Il affiche comme:

00:00 

00:30:00 

01:00:00 

01:30:00 

Mon problème avec ce format est l'affichage des secondes. Aussi, je veux que l'heure soit au format 24h, pas au format 12h.

+2

utilisation '.ToString ("HH: mm")' –

+0

quand je l'ai utilisé me donne chaîne format incorrect – hashim

+1

Voir cette erreur: https: // docs.microsoft.com/en-us/dotnet/standard/base-types/standard-timespan-format-strings Également pas que TimeSpan est une structure représentant une période de temps PAS un temps réel - en tant que tel les heures seront toujours 0- 23. – PaulF

Répondre

1

Vous pouvez lui donner un format par ToString:

<select class="form-control dropdown guestTitle"> 
    @{ 
     TimeSpan StartTime = TimeSpan.FromHours(0); 
     <option>00:00</option> 
     for (int i = 0; i < 48; i++) 
      { 
       StartTime = StartTime.Add(new TimeSpan(00,30,0)); 
       <option>@StartTime.ToString("hh\\:mm")</option> 
      }      
     }                       
    </select> 
+0

La chaîne d'entrée n'était pas dans un format correct. cette erreur quand je mets '.ToString (" HH: mm ")' – hashim

+2

Je pense que vous trouverez la bonne chaîne de format pour un TimeSpan est @ "hh \: mm" - voir https://msdn.microsoft.com/en -us/library/dd992632 (v = vs.110) .aspx – PaulF

+0

J'ai édité ma réponse. celui-ci devrait fonctionner maintenant –