/ / Як порівняти дати в c # - c #, datetime

Як порівняти дати в c # - c #, datetime

У мене два дати. Один дата вводить, а інший - DateTime.Now. Я їх у mm/dd/yyyy формат, він може бути навіть у форматі m / d / yy. Обидві дати є нульовими, тобто тип даних - DateTime?, оскільки я можу передавати нуль також як вхід. Тепер я хочу порівняти лише два дати mm/dd/yyyy або m/d/yy формат

Відповіді:

67 за відповідь № 1

Якщо у вас є дати в змінних DateTime, вони не мають мати формат

Ви можете скористатись Date властивість повертати значення DateTime із часом, встановленим до опівночі. Отже, якщо у вас є:

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 за відповідь № 2

Якщо у вас є дата в DateTime змінна потім її a DateTime об'єкт і не містить будь-якого формату. Форматована дата виражається як string коли дзвониш DateTime.ToString метод і надати формат у ньому.

Скажемо, у вас є два DateTime змінна, ви можете використовувати метод порівняння для порівняння,

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";

Код фрагмент взятий з msdn.


8 за відповідь № 3

По-перше, це зрозуміло DateTime об'єкти не оформлені. Вони просто зберігають рік, місяць, день, годину, хвилину, секунду тощо як числове значення, і форматування відбувається, коли ви хочете якось представляти його як рядок. Ви можете порівняти DateTime об'єкти без форматування їх.

Щоб порівняти дату введення з DateTime.Now, вам спочатку потрібно провести аналіз введення на дату, а потім порівняти лише частини року / місяць / день:

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!
}