如何查看另一个日期是否早于今天的日期

时间:2015-06-03 14:14:25

标签: 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)
{
    dvShowReopen.Visible = false;
}

我要做的是取strDueDate并与今天进行比较。如果它小于今天,则将可见性设置为false。

我怎样才能实现它。

5 个答案:

答案 0 :(得分:4)

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

if (dt.Date < DateTime.Today)

如果您要查找与dt的完整部分比较以及当前的当地时间,请将其与Date property进行比较。

if (dt < DateTime.Now)

您不需要这些字符串表示。每当你使用比较另一个DateTime生成DateTime的字符串表示时,你应该知道你正在做一些错误的

让我们逐行查看您的代码。

DateTime dt = Convert.ToDateTime("03-25-2015");

这一行会生成一个DateTime(您很幸运,这是DateTime.TodayNow property25/3/2015 12:00:00 AM。由于您的字符串没有时间部分,因此默认情况下它将是午夜

string strToday = DateTime.Now.ToString("mm-dd-yyyy");

这将为您当前的当地时间生成一个字符串,分钟(月),日和年。因为standard date and time format是分钟,但CurrentCulture是几个月。运行此代码时,看起来当前的本地时间分钟为9。 (基于下一行

DateTime dt1 = Convert.ToDateTime(strToday);

此行将根据您的03-09-2015字符串生成DateTime(因为上一行会生成此字符串),并且由于您的字符串仍然没有任何时间部分,因此它会生成9/3/2015 12:00:00 AM as DateTime

答案 1 :(得分:2)

此代码不起作用吗?

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

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

答案 2 :(得分:1)

为什么转换?你应该没问题:

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

答案 3 :(得分:1)

试试这个

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

答案 4 :(得分:0)

关于如何做到的另一个想法...

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