Как сравнить дату, введенную datetimepicker, и текущую дату

У меня есть инструмент datetimepicker, который используется для ввода даты рождения сотрудника, и я хочу проверить, не забыл ли пользователь ввести действительную дату рождения и оставил дату и время на текущей дате, чтобы он получил предупреждающее сообщение.
I' я пытался написать этот код в событии ValueChanged, но это не сработало, как я хотел... любая помощь

if (empRegBdatePicker.Value == DateTime.Today)
            {
                MessageBox.Show("Please enter a valid birth date of an employee");
                empRegBdatePicker.Focus();
            }

person Mouad Raizada    schedule 26.01.2017    source источник
comment
Возможный дубликат Как сравнить DateTime в C#?   -  person M. Adeel Khalid    schedule 26.01.2017
comment
Думаю, нам нужно больше информации. Отлаживает ли отладчик приведенный выше код? Каково значение empRegBdatePicker.Value? Каким образом это не сработало?   -  person Baldrick    schedule 26.01.2017
comment
Не записывайте его в событие ValueChanged, если пользователь забудет ввести дату своего рождения, значение не изменится, поэтому событие не сработает.   -  person bolt19    schedule 26.01.2017


Ответы (2)


Если вы хотите проверить только дату, вы можете попробовать следующее:

if(empRegBdatePicker.Value.Date == DateTime.Now.Date)
{
    //birthdate is today
} 
person Nedim Hozić    schedule 26.01.2017
comment
Я использовал ваше условие в событии Validating, и оно отлично выполнило то, что я хотел от моего вопроса. Большое спасибо :) - person Mouad Raizada; 26.01.2017

Просто напишите

if(empRegBdatePicker < Today)
{
    //birthdate is in past
}

Кроме того, выполняйте эту проверку перед любыми операциями сохранения вместо некоторых событий изменения значения.

person Ali Baig    schedule 26.01.2017
comment
где я должен написать это условие? - person Mouad Raizada; 26.01.2017
comment
Вы должны проверить это перед любым сохранением в базе данных, чтобы оно проверяло правило. С событиями изменения поля пользователь может пропустить (ничего не делает) и все же может уйти - person Ali Baig; 26.01.2017