C#datetimepicker如果今天等于今天,则勾选复选框,否则未选中/取消选中

时间:2019-09-02 09:34:50

标签: c# datetime if-statement datetimepicker

我正在尝试一个复选框(notTodayCheckBox),如果datetimepicker(DateTimePicker)具有今天的选择,则不选中,如果不是今天的选择,则选中。

如果所选日期不是今天,则我当前的代码在方框中打勾,但是如果我将日期改回今天,则不​​会取消选中该框。

当前代码:

private void DateTimePicker_ValueChanged(object sender, EventArgs e)
{
     DateTime check;
     if (DateTime.TryParse(dateTimePicker.Text, out check) && check != DateTime.Now)
     {
          notTodayCheckBox.Checked = true;
     }
     else if (DateTime.TryParse(dateTimePicker.Text, out check) && check == DateTime.Now)
     {
          notTodayCheckBox.Checked = false;
     }
}

1 个答案:

答案 0 :(得分:2)

DateTime.Now中包含一个时间元素,也许您的日期选择器设置为不同的时间,即使一秒钟也会使它们不相等。

如果您只是在约会之后而不在乎时间。

checkDateTime.Now转换为ShortDateString()

它将两者都视为string,格式为mm/dd/yyyy

check.ToShortDateString() == DateTime.Now.ToShortDateString()

或根据RenéVogt

check.Date == DateTime.TodayDateTime.Now.Date 两者都将返回DateTime,时间设置为12:00:00AM