如何在C#中指定某个DateTime值是否在同一天?

时间:2013-06-27 13:22:15

标签: c# datetime

例如,今天20:30会有一些活动。那天早些时候卖票了。门票只能在同一天退回。

今天有人想要退票,无论是在活动时间之前还是之后都没关系,但应该是在那一天。

如何在C#中指定某个DateTime值是否在同一天?

5 个答案:

答案 0 :(得分:7)

类似的东西:

if (ticket.Date == now.Date) // For some value of now

或者也许:

if (ticket.Date == DateTime.Today)

?你需要考虑时区是否也会导致你出现问题......你需要注意DateTime has some significant ambiguities - 很容易避免考虑你应该注意的事情,特别是在你感兴趣的时区。

编辑:正如评论中所述,您确实可以使用Noda Time,此时您想要比较LocalDate值 - 您还需要考虑哪个时区是相关的。< / p>

答案 1 :(得分:2)

MSDN docu of DateTime

DateTime date1 = new DateTime(2013, 6, 27, 7, 47, 0);
// Get date-only portion of date, without its time.
DateTime dateOnly = date1.Date;

if (Date1.Date == Date2.Date)
{ //lucky Day}
else 
{ // loser
 }

但是如果你构建一个新工具。 使用 DateTimeOffSet

查看“现在和今天”属性

答案 2 :(得分:1)

if(yourEventDate == DateTime.Today)

那会有用吗?

答案 3 :(得分:1)

你可以这样做(如果需要的话,可以添加事件检查的时间)。

if ((DateVariable.Date == DateTime.Today) && (DateTime.Now.TimeOfDay < new TimeSpan(20,30,0))) 
{
    //your work here....
}

答案 4 :(得分:-1)

您必须比较每个DateTime的属性。

例如:

DateTime date1 = new DateTime(2013, 01, 01, 01, 00, 00); // Jan 1th, 2013 - 01:00 AM
DateTime date2 = new DateTime(2013, 01, 01, 02, 00, 00); // Jan 1th, 2013 - 02:00 AM

if (date1.Day == date2.Day && date1.Month == date2.Month && date1.Year == date2.Year)
{
    // Your code here.
}