比较两个日期的最有效方法;一个与时间,一个没有

时间:2012-08-29 18:20:26

标签: c# datetime webforms

我想比较两个日期;一个取自SQL中的Date列和当前DateTime.Now。前者没有时间部分(技术上确实如此,但是它已经归零),当然后者将使用当前时间到最接近的毫秒。这就是我现在正在做的事情,而且效率似乎很低:

DateTime compareDate = Convert.ToDateTime(string.Format("{0:M/d/yyyy}", DateTime.Now));
if (myObj.EndDate < compareDate)
{
    myObj.Status = "PAST";
}
else if (myObj.StartDate <= compareDate && myObj.EndDate >= compareDate)
{
    myObj.Status = "ACTIVE";
}
else
{
    myObj.Status = "PENDING";
}

有没有更好的方法从DateTime变量中删除时间?

2 个答案:

答案 0 :(得分:5)

是的,使用DateTime结构的Date属性,或者只使用DateTime.Today

e.g。

DateTime compareDate = DateTime.Now.Date

DateTime compareDate = DateTime.Today 

答案 1 :(得分:1)

在要从中删除时间的DateTime变量上使用属性“Date”。

var pureDate = DateTime.Now.Date;