DateTime卷9000+

时间:2012-03-07 13:59:29

标签: vb.net datetime

我确信这已经得到了解答,但无论我输入与日期时间有什么关系,我都得到一个与我所需要的完全无关的不同答案,所以请耐心等待^ _ ^

如果我有日期时间字面值

dim IDate as DateTime = #6:21:00am#

我根据一天创建日期

dim iCurrentDate as DateTime = (2012,9,9,6,0,0)

现在我已经知道iCurrentDate比iDate 更大因为日期 , 我如何比较这些天的

例如,我希望此返回iDate 大于而不是iCurrentDate,因为早上6:21是>早上6点

编辑:我实际上是在使用c#i dunno为什么我在vb.net中写了这个问题,它也有一个秒组件。

4 个答案:

答案 0 :(得分:2)

单独测试HourMinute组件

If IDate.Hour > iCurrentDate.Hour Then
  Return True
ElseIf IDate.Hour = iCurrentDate.Hour And IDate.Minute > iCurrentDate.Minute Then
  Return True
End If

Return False

答案 1 :(得分:2)

只需使用TimeOfDay属性:

Sub Main

    Dim date1 As DateTime = #6:21:00am#
    Dim date2 as New DateTime(2012,9,9,6,0,0)

    Console.WriteLine("date1 > date2: {0}", (date1 > date2))
    Console.WriteLine("date1.TimeOfDay > date2.TimeOfDay: {0}", (date1.TimeOfDay > date2.TimeOfDay))

End Sub

'Result:
'date1 > date2: False
'date1.TimeOfDay > date2.TimeOfDay: True

答案 2 :(得分:1)

TimeSpan结构就在这里

Dim t1 as New TimeSpan(IDate.Hour, IDate.Minute, IDate.Seconds)
Dim t2 as New TimeSpan(ICurrentDate.Hour, ICurrentDate.Minute, ICurrentDate.Seconds)

if t2 > t1 then
....

答案 3 :(得分:0)

您可以使用DateTime.TotalMinutes的值转换为分钟数来比较{{1}}的值

if iCurrentDate.TotalMinutes > IDate.TotalMinutes Then
'iCurrectdate is greater
else
'IDate is greater
End If