将c#中的日期与空值进行比较

时间:2010-06-16 11:58:52

标签: c#

我是c#的新手。我正在比较两个日期,其中一个是用户输入的,另一个是系统日期时间。我有代码工作,因为它出现的障碍是如何满足空值。我的基本代码是:

if (mydate.ToShortDateString() != TodaysDate.ToShortDateString())

{
//Error Messaage
}

else
{
//do some code
}

任何反馈都将不胜感激

3 个答案:

答案 0 :(得分:2)

为什么要将它们转换为字符串?为什么不在date1.Date != date2.Date中比较它们的日期部分。

答案 1 :(得分:0)

您可以将mydate声明为DateTime?,然后它可以保存空值。

至于如何处理错误,取决于是否将mydate的空值视为错误。如果这是一个错误,你可以这样做:

if (mydate == null || mydate.ToShortDateString() != TodaysDate.ToShortDateString()) {
    // error
}

如果不是错误情况,你可以这样做:

if (mydate != null && mydate.ToShortDateString() != TodaysDate.ToShortDateString()) {
    // error
}

如果您未将mydate声明为DateTime?,而只是将其声明为DateTime,那么您可以检查DateTime.MinValue,就像这样(DateTime.MinValue是默认值DateTime变量的值:

if (mydate == DateTime.MinValue || mydate.ToShortDateString() != TodaysDate.ToShortDateString()) {
    // error
}

答案 2 :(得分:0)

使用??操作者:

if ((mydate??DateTime.MinValue).ToShortDateString() != TodaysDate.ToShortDateString())
{
//Error Messaage
}

else
{
//do some code
}