确定Date是否过去?

时间:2012-11-03 10:43:32

标签: .net vb.net datetime compare

确定Date过去的最佳方式是什么?

目前我有:

If MyDate < Date.Now

3 个答案:

答案 0 :(得分:1)

您所获得的是一个合理的起始点,但还有许多其他需要考虑的因素:

  • 假设MyDateDateTime,您确实需要考虑其Kind。例如,如果种类是UTC,您可能应该使用DateTime.UtcNow。如果类型是Local,则可以使用DateTime.Now。如果它是未指定的,那么你有点夸张,因为它不清楚究竟是什么意思
  • 你的问题谈到了“约会” - 价值真的只是代表一个日期,或者一个日期和时间吗?如果它只是一个日期,那么您可能希望Today代替Now,或UtcNow.Date代表UTC版本。
  • 您需要考虑时区吗?你可能会更好地使用DateTimeOffset吗?这实际上取决于您的数据来源以及您想要附加的完全

(顺便说一下,如果你使用的是将不同类型的值分成不同类型的日期/时间API,那么很多这些问题会更加透明。所以我正在研究这样的API - {{ 3}}:)

答案 1 :(得分:0)

如果DateDiff(DateInterval.Day,MyDate,Date.Now)&lt; 0

答案 2 :(得分:0)

我假设你在同一时区工作。

这是一个小代码片段,展示了如何做到这一点:

Dim MyDate As Date = #11/4/2012#
Dim ts As TimeSpan = MyDate.Subtract(Today)
If ts.TotalDays < 0 Then
  MsgBox("MyDate is in the past")
ElseIf ts.TotalDays > 0 Then
  MsgBox("MyDate is in the future")
Else
  MsgBox("MyDate is today")
End If