2009-11-20 2 views
1

J'ai besoin d'une méthode dans C# qui me fait une chaîne qui ressemble à une date-heure d'un double/float.méthode pour afficher float au format datetime

par exemple

1.5 -> 01h30 2.8 -> 02h48 25.5 -> 25:30 (note: ne pas afficher comme le jour, afficher des heures complètes, même ses plus de 24)

Répondre

3

les opérations suivantes:

string ToTime(double hours) 
{ 
    var span=TimeSpan.FromHours(hours); 
    return string.Format("{0}:{1:00}:{2:00}", 
     (int)span.TotalHours, span.Minutes, span.Seconds); 
} 

Ou si vous ne voulez pas secondes:

string.Format("{0}:{1:00}", (int)span.TotalHours, span.Minutes) 
5

Il me semble que vous ne voulez pas un DateTime - vous voulez un TimeSpan:

TimeSpan ts = TimeSpan.FromMinutes(x); 

ou

TimeSpan ts = TimeSpan.FromHours(x); 

(en fonction de vos besoins exacts).

Notez que « 2.8 » ne sera pas exactement 2.8, de sorte que vous ne pouvez pas obtenir exactement le résultat que vous attendez - pour les raisons normales de bases à virgule flottante, etc.

Bien qu'il n'y ait pas de mise en forme personnalisée Pour les valeurs TimeSpan dans la version actuellement publiée du framework, il s'agit de .NET 4.0.

+0

Jon, s'il vous plaît arrêter de me skeeting ;-) – Konamiman