/ / Jak porównać daty w c # - c #, datetime

Jak porównać daty w c # - c #, datetime

Mam dwie daty. Jedna data jest wprowadzana, a druga to DateTime.Now. Mam je mm/dd/yyyy format, może to być również format m / d / yy. Obie daty są zerowalne, tzn. Typ danych to DateTime?, ponieważ mogę przekazać wartość null również jako dane wejściowe. Teraz chcę porównać dwie daty tylko z mm/dd/yyyy lub m/d/yy format.

Odpowiedzi:

67 dla odpowiedzi № 1

Jeśli masz daty w zmiennych DateTime, nie robią tego mieć format.

Możesz użyć Date Właściwość zwrócenia wartości DateTime z przedziałem czasu ustawionym na północ. Tak więc, jeśli masz:

DateTime dt1 = DateTime.Parse("07/12/2011");
DateTime dt2 = DateTime.Now;

if(dt1.Date > dt2.Date)
{
//It"s a later date
}
else
{
//It"s an earlier or equal date
}

24 dla odpowiedzi № 2

Jeśli masz datę w DateTime zmienna to jego a DateTime obiekt i nie zawiera żadnego formatu. Formatowana data jest wyrażona jako string kiedy zadzwonisz DateTime.ToString metoda i podaj w niej format.

Powiedzmy, że masz dwa DateTime zmienna, możesz użyć porównania do porównania,

DateTime date1 = new DateTime(2009, 8, 1, 0, 0, 0);
DateTime date2 = new DateTime(2009, 8, 2, 0, 0, 0);
int result = DateTime.Compare(date1, date2);
string relationship;

if (result < 0)
relationship = "is earlier than";
else if (result == 0)
relationship = "is the same time as";
else
relationship = "is later than";

Fragment kodu pobrany z msdn.


8 dla odpowiedzi nr 3

Po pierwsze, zrozum to DateTime obiekty nie są sformatowane. Po prostu zapisują Rok, Miesiąc, Dzień, Godzinę, Minutę, Drugą itd. Jako wartość numeryczną, a formatowanie ma miejsce, gdy chcesz w jakiś sposób przedstawić je jako ciąg znaków. Możesz porównać DateTime obiekty bez ich formatowania.

Aby porównać datę wejściową z DateTime.Now, musisz najpierw przeanalizować dane wejściowe na datę, a następnie porównać tylko porcje Rok / Miesiąc / Dzień:

DateTime inputDate;
if(!DateTime.TryParse(inputString, out inputDate))
throw new ArgumentException("Input string not in the correct format.");

if(inputDate.Date == DateTime.Now.Date) {
// Same date!
}