C# 如何查看其他日期是否早于今天的日期

C# 如何查看其他日期是否早于今天的日期,c#,datetime,C#,Datetime,我有以下C代码: DateTime dt = Convert.ToDateTime(strDueDate); //strDueDate = '03-25-2015' string strToday = DateTime.Now.ToString("mm-dd-yyyy"); DateTime dt1 = Convert.ToDateTime(strToday); // this is displaying 9/3/2015 12:00:00 AM if (dt < dt1) { d

我有以下C代码:

DateTime dt = Convert.ToDateTime(strDueDate); //strDueDate = '03-25-2015'
string strToday = DateTime.Now.ToString("mm-dd-yyyy");
DateTime dt1 = Convert.ToDateTime(strToday); // this is displaying 9/3/2015 12:00:00 AM
if (dt < dt1)
{
    dvShowReopen.Visible = false;
}
我想做的是拿strDueDate和今天进行比较。如果小于今天,则将可见性设置为false


我怎样才能实现它。

这段代码会不起作用吗

DateTime dt = new DateTime(2015, 3, 25);
DateTime dt1 = DateTime.Now;

if (dt < dt1)
{
    dvShowReopen.Visible = false;
}

为什么要转换?您应该可以:

DateTime dt = Convert.ToDateTime(strDueDate); //strDueDate = '03-25-2015'
if (dt.CompareTo(DateTime.Now) < 0)
{
    dvShowReopen.Visible = false;
}

如果您只查找日期部分与今天句子的比较,您可以使用dt将其与进行比较

您不需要这些字符串表示。每次生成DateTime的字符串表示形式并与另一个DateTime进行比较时,您都应该意识到自己做错了什么

让我们逐行查看您的代码到底在做什么

DateTime dt = Convert.ToDateTime("03-25-2015");
这一行将生成日期时间,幸运的是,这是您2015年3月25日12:00:00上午的一个日期时间。由于您的字符串没有时间部分,因此默认情况下为午夜

这将为您当前的本地时间生成一个以分钟而不是月、日和年表示的字符串。因为是几分钟,但却是几个月。运行此代码时,当前本地时间分钟数似乎为9。基于下一行

此行将基于您的03-09-2015字符串生成日期时间,因为前一行生成了此字符串,而且您的字符串仍然没有任何时间部分,因此它将生成9/3/2015 12:00:00 AM作为日期时间。

尝试此操作

DateTime dt = Convert.ToDateTime(strDueDate);
if ((dt - DateTime.Now).TotalDays < 1)
{
    dvShowReopen.Visible = false;
}

只是关于如何做的另一个想法

 if (DateTime.TryParse(strDueDate, out dt))
   dvShowReopen.Visible = (dt.CompareTo(DateTime.Now) < 0);
 else
   dvShowReopen.Visible = false;

DateTime.Now.ToStringmm-dd-yyyy;给你分钟而不是月份。dtstring strToday = DateTime.Now.ToString("mm-dd-yyyy");
DateTime dt1 = Convert.ToDateTime(strToday);
DateTime dt = Convert.ToDateTime(strDueDate);
if ((dt - DateTime.Now).TotalDays < 1)
{
    dvShowReopen.Visible = false;
}
 if (DateTime.TryParse(strDueDate, out dt))
   dvShowReopen.Visible = (dt.CompareTo(DateTime.Now) < 0);
 else
   dvShowReopen.Visible = false;