Nie chcę, aby użytkownik podawał datę ani godzinę zwrotu.
Jak mogę porównać, czy wprowadzona data i godzina są MNIEJSZE od aktualnego czasu?
Jeśli aktualna data i godzina to 17 czerwca 2010, 12:25, chcę, aby użytkownik nie mógł podać daty przed 17 czerwca -2010 i czasu przed 12:25.
Podobnie jak moja funkcja zwraca false, jeśli czas wprowadzony przez użytkownika to 16 czerwca 2010 i godzina 12:24
Firma Microsoft wdrożyła również operatory „<” i „>”. Więc używasz ich do porównania dwóch dat.
źródło
date1.ToLocalTime() < DateTime.Now
albodate1.ToUniversalTime() < DateTime.UtcNow
.Odpowiedź MuSTaNG mówi wszystko, ale wciąż ją dodaję, aby była trochę bardziej rozbudowana, z linkami i wszystkim innym.
Operatory konwencjonalne
>
) ,<
) ,==
) ,są dostępne
DateTime
od wersji .NET Framework 1.1. Również dodawanie i odejmowanieDateTime
obiektów jest również możliwe przy użyciu konwencjonalnych operatorów+
i-
.Jeden przykład z MSDN:
Równość:W podobny sposób można używać innych operatorów.
Oto lista wszystkich operatorów dostępnych dla
DateTime
.źródło
+
dwóchDateTime
operandów, Możesz to zrobićDateTime - DateTime
, lubDateTime + TimeSpan
, lubDateTime - TimeSpan
.W ogólnym przypadku musisz porównać
DateTimes
z tym samymKind
:Wyjaśnienie z MSDN o
DateTime.Compare
(Jest to również istotne dla operatorów takich jak>
,<
,==
itp):Dlatego proste porównanie może dać nieoczekiwany wynik, gdy mamy do czynienia z sytuacjami,
DateTimes
które są reprezentowane w różnych strefach czasowych.źródło
Jeśli masz dwa DateTime, które wyglądają tak samo, ale Porównaj lub Równe nie zwraca tego, czego oczekujesz, oto jak je porównać.
Oto przykład z dokładnością do 1 milisekundy:
źródło
źródło
DateTime
niestring
Oto typowy, prosty przykład w środowisku Unity
źródło
źródło