7
votes

Convertir une heure à une chaîne formatée en C #

temps.tostring ("0.0") apparaît comme une décimale "1.5" pour 1:30. Comment puis-je le faire afficher dans un format horaire? XXX


1 commentaires

Quel type est le temps? Est-ce que c'est flotter?


7 Réponses :


26
votes
// Keep in mind this could be bad if you go over 24 hours
DateTime.MinValue.AddHours(Time).ToString("H:mm");

2 commentaires

Cela a également travaillé pour moi aussi, bien que j'ajouterais que c'est une bonne pratique de passer dans une culture lors de la tâche (), de cultureinfo.invariantculture ou de cultureInfo.Currentculture (Microsoft FXCop le recommande aussi)


temps.tostring ("HH: mm") me donne une exception au format. (On dirait que le côlon doit être échappé, sauf que l'évasion \ doit également être échappée, de sorte que vous vous retrouvez avec: temps.tostring ("HH \\: mm") )



2
votes

Je suppose que heure est de type tispan ? Dans ce cas, La documentation de TimesPan.tostring peut vous aider, en particulier les pages


0 commentaires

2
votes

si heure est un system.double , puis system.timepan.fromhours (heure) .tostring ();


3 commentaires

(System.Timespan.fromhours (heure) .Tostring ()) Fonctionne bien merci mais comment puis-je concaténer la chaîne à la sortie de 8h30 au lieu de 00: 00.00000


string.format ("{0: hh: mm}", datetime.minvalue + tispan.fromhours (heure))


Si vous vous demandez, les méthodes les plus élégantes proposées par d'autres utilisateurs sont de nouvelles ajouts à .NET 4.0



0
votes

Si le temps est float ou double, vous devrez. System.Math.trunate (heure) pour obtenir les heures

puis (heure - System.Math.trunate (heure)) * 60 obtenir les minutes.


1 commentaires

Oui, c'est un double, mais je suis nouveau à C # et à la programmation en général Ceci est ma deuxième affectation en classe afin que vous puissiez préciser davantage sur la manière de l'utiliser. Je ferai les devoirs juste besoin de la direction.



1
votes

Notez que si vous travaillez dans une base de 24 heures, il est très important d'utiliser HH: mm et non HH: mm . .

Parfois, j'écris par erreur HH: mm , puis à la place de "13:45" Je reçois "01:45", et il n'y a aucun moyen de savoir si c'est un matin ou si vous n'utilisez pas tt ).


0 commentaires

0
votes

merci pour toutes les réponses les gars et les gals que j'ai utilisé ce datetime.minvalue.addhours (heure) .tostring ("h: mm"); pour mon programme car il était le plus facile à mettre en œuvre.


0 commentaires

0
votes

Créer une période de temps de votre variable numérique:

TimeSpan ts = new TimeSpan(Math.Floor(Time), (Time - Math.Floor(Time))*60);


0 commentaires