I want to compare two dates; one taken from a Date column in SQL and the current DateTime.Now. The former has no time portion (technically it does, but it’s zeroed out) and of course the later will have the current time to the nearest millisecond. Here is what I am doing now, and it seems inefficient:
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";
}
Is there a better way to strip time off a DateTime variable?
Yes, use the Date property of the DateTime structure, or just use DateTime.Today.
e.g.
or