1

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

今天有人想退票,不管是在活动时间之前还是之后,但应该在那天。

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

4

5 回答 5

7

就像是:

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

也许:

if (ticket.Date == DateTime.Today)

? 您需要考虑时区是否也会给您带来问题......您需要注意DateTime有一些明显的歧义- 很容易避免考虑您真正应该注意的事情,特别是在哪些方面您感兴趣的时区。

编辑:如评论中所述,您确实可以使用Noda Time,此时您想要比较LocalDate值 - 同样,您仍然需要考虑哪个时区是相关的。

于 2013-06-27T13:24:42.563 回答
2

DateTime 的 MSDN 文档

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

查看现在和今天的属性

于 2013-06-27T13:30:09.570 回答
1
if(yourEventDate == DateTime.Today)

那行得通吗?

于 2013-06-27T13:29:17.997 回答
1

你可以做到这一点(如果在某些情况下需要添加事件检查的时间)。

if ((DateVariable.Date == DateTime.Today) && (DateTime.Now.TimeOfDay < new TimeSpan(20,30,0))) 
{
    //your work here....
}
于 2013-06-27T13:46:42.337 回答
-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.
}
于 2013-06-27T13:28:36.413 回答