2012-05-02 4 views
17

Czy istnieje prosty sposób pobrania wartości float reprezentującej ułamkowe godziny i przekształcenia ich w obiekt TimeSpan i odwrotnie? Na przykład:Konwertowanie wartości zmiennoprzecinkowej na przedział czasowy

float oneAndAHalfHours = 1.5f; 
float twoHours = 2f; 
float threeHoursAndFifteenMinutes = 3.25f; 
float oneDayAndTwoHoursAndFortyFiveMinutes = 26.75f; 

TimeSpan myTimeSpan = ConvertToTimeSpan(oneAndAHalfHours); // Should return a TimeSpan Object 

Jakieś pomysły?

Odpowiedz

33

Chcesz metodę FromHours.

To trwa dwukrotnie (zamiast pływaka) i zwraca TimeSpan:

double hours = 1.5; 
TimeSpan interval = TimeSpan.FromHours(hours); 

się całkowitej godzin ze TimeSpan użyć właściwości `TotalHours':

TimeSpan interval = new TimeSpan(1, 15, 42, 45, 750); 
double hours = interval.TotalHours; 
12

Poszukujesz ... TimeSpan.FromHours(double)?

Dokumentacja jest Twoim przyjacielem.

+8

To schemat nazewnictwa jest po prostu szalony . Tak nie można tego wykryć. Kto by pomyślał, że gdybym chciał stworzyć "TimeSpan" * od * liczby * godzin *, to właśnie by to zrobił 'TimeSpan.FromHours'? –

+1

@ JonSkeet: Wiem, to przeszkadza w umyśle. Gdzie jest Lippert ?! –

+1

Chciałbym zapłacić dobre pieniądze za zobaczenie API daty/godziny zaprojektowanego przez Erica. Mam na myśli to dosłownie ... Myślę, że wartość, jaką zyskałbym, porównując jego decyzje z tymi, które zrobiłem w czasie Noda, byłaby dla mnie warta. –