从datePicker中选择日期

时间:2011-07-29 11:47:51

标签: c# datetimepicker

这是一个代码片段,我必须选择一个合适的日期来预约,它应该做一个简单的验证,即为约会选择的日期是当前日期或晚于该日期的日期。 / p>

if (dateTimePicker1.Value < DateTime.Now)
            toolStripStatusLabel1.Text = "Date Selected is not Proper";
else (dateTimePicker1.Value >= DateTime.Now)
            toolStripStatusLabel1.Text = "Date Selected is " + dateTimePicker.Value;

但是,当我选择当前日期时,它总是进入if块。当我选择一个晚于当前日期的日期时,它可以正常工作。

谢谢

6 个答案:

答案 0 :(得分:4)

您忘记了DateTime的时间部分。你应该改用它:

if (dateTimePicker1.Value < DateTime.Today)
        toolStripStatusLabel1.Text = "Date Selected is not Proper";
else (dateTimePicker1.Value >= DateTime.Today)
        toolStripStatusLabel1.Text = "Date Selected is " + dateTimePicker.Value;

答案 1 :(得分:2)

因为DateTime.Now不仅返回数据,还返回时间。所以要解决这个问题:

使用DateTime.Now.Date代替DateTime.Now

答案 2 :(得分:2)

因为DateTime.Now包含当天的时间,所以请尝试DateTime.Today这只获取日期。

答案 3 :(得分:2)

DateTime.Now包括两者日期和时间,以及
'2011-07-29'总是小于'2011-07-29 13:50:00'

使用DateTime.Now.DateDateTime.Today进行此类比较。

答案 4 :(得分:0)

DateTimePicker有一个MinimumDate属性可以为你做这个检查 - 你试过吗?这是文档:

http://msdn.microsoft.com/en-us/library/system.windows.forms.datetimepicker.mindate(v=vs.80).aspx

另外,请记住DateTime.Now有小时/分钟/秒 - 从您的示例中不清楚您是否只想比较DateTime的日期部分...?

希望这有帮助,

约翰

答案 5 :(得分:0)

这是由于毫秒的差异..你只需要检查日期部分而不是时间部分...尝试使用只有日期的TimeSpan这可以解决你的问题。