Сравнение только дат из DateTime C # - PullRequest
3 голосов
/ 05 октября 2010

Моя таблица содержит 2 поля со значениями,

StartTime                 EndTime
  3/6/2010 8:00:00 AM       3/6/2010 10:20:00 AM

Теперь у меня есть элемент управления DatePicker, в котором пользователь может выбрать дату,

C# Logic:
DateTime SelDate;
            if (datePicker.SelectedDate == null)
                SelDate = DateTime.Now; 
            else
                SelDate = datePicker.SelectedDate;

Я пытаюсь сравнить даты по приведенному ниже коду, но это дает мне ошибку времени компиляции,

foreach (DomainObject obj in res.ResultSet)
                    {
                        MyClass adef = (MyClass)obj;
                        DateTime sTime = (DateTime)adef.StartTime;
                        DateTime eTime = (DateTime)adef.EndTime;

                        if ((SelDate.ToShortDateString >= sTime.ToShortDateString) && (SelDate.ToShortDateString <= eTime.ToShortDateString))
                        {
                            actdef.Add(new MyClassViewModel(adef));
                        }

                    }

Я просто хочу взять дату для сравнения, а не часть времени. Поэтому я использовал метод ToShortDateString.

Ответы [ 2 ]

7 голосов
/ 05 октября 2010

Просто используйте Date свойство DateTime:

if (SelDate.Date >= sTime.Date)

Также обратите внимание, что вы можете использовать DateTime.Today, чтобы начать сегодня.

2 голосов
/ 05 октября 2010

Просто используйте свойство Date DateTime и сделайте прямое сравнение.

DateTime SelDate = datePicker.SelectedDate == null ? DateTime.Now : datePicker.SelectedDate;

if( SelDate.Date >= sTime.Date )
{
   // do something here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...