Pobieram dwie wartości daty i godziny z bazy danych. Po odzyskaniu wartości potrzebuję różnicy między tymi dwiema wartościami. W tym celu tworzę zmienną przedziału czasu, aby przechowywać różnicę między 2 wartościami daty.
TimeSpan? variable = datevalue1 - datevalue2;
Teraz muszę pokazać różnicę przechowywaną w zmiennej Timespan pod względem liczby godzin. Odniosłem się do TimeSpan.TotalHours, ale z jakiegoś powodu nie mogłem zastosować tego samego. W jaki sposób mogę to zrobić? Używam C # w projekcie MVC. Po prostu muszę pokazać wartość różnicy w godzinach?
EDYCJA: Ponieważ przedział czasowy był zerowalny, nie mogłem użyć właściwości total hours. Teraz mogę z niego korzystać, wykonując TimeSpanVal.Value.TotalHours ;
c#
asp.net-mvc-2
datetime
timespan
reggie
źródło
źródło
TimeSpan.TotalHours
?.Value.TotalHours
Odpowiedzi:
Myślę, że jesteś zdezorientowany, ponieważ nie zadeklarowałeś
TimeSpan
deklaracji,TimeSpan?
która jest zerowalnaTimeSpan
. Usuń znak zapytania, jeśli nie potrzebujesz go zerować lub użyćvariable.Value.TotalHours
.źródło
możesz też na to spojrzeć
źródło
W tym przykładzie tworzymy dwa obiekty daty i godziny, jeden z bieżącym czasem, a drugi z 75 sekundami dodanymi do bieżącego czasu. Następnie wywołamy metodę .Subtract () na drugim obiekcie DateTime. Zwróci to obiekt TimeSpan. Gdy otrzymamy obiekt TimeSpan, możemy użyć właściwości TimeSpan, aby uzyskać rzeczywiste godziny, minuty i sekundy.
Wynik:
źródło
TotalSeconds
,TotalMinutes
etcCzy jest jakiś powód, którego używasz
Nullable
?Jeśli chcesz użyć
Nullable
, możesz pisaćvariable.Value.TotalHours
.Albo można po prostu napisać:
(datevalue1 - datevalue2).TotalHours
.źródło
DateTime?
DateTime
. W .NETDateTime - DateTime = TimeSpan
.Nullable<DateTime>
i dlatego dostajeszNullable<TimeSpan>
.Oto kolejny przykład odejmowania dwóch dat w C # ...
źródło
bardziej precyzyjny sposób na godziny płatne przez pracownika lub inne wymagania dotyczące precyzji :
https://dotnetfiddle.net/tVIoVJ
źródło
możemy również dodać różnicę między datami, jeśli porównamy dwie różne daty
źródło
WOW, muszę powiedzieć: zachowaj prostotę:
i:
Obiekt DateTime ma całą wbudowaną logikę do obsługi wyniku logicznego.
źródło