首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >确定System.DateTime是否是午夜的最佳方法是什么?

确定System.DateTime是否是午夜的最佳方法是什么?
EN

Stack Overflow用户
提问于 2009-03-25 12:51:26
回答 2查看 13.4K关注 0票数 28

似乎有几种可能的方法来确定给定的System.DateTime是否表示午夜。每种方法的优缺点是什么?哪个更具可读性,哪个性能更好?

编辑:我认为可读性比性能更重要,直到分析发现有问题为止。这就是为什么我两个都问的原因。

示例1

代码语言:javascript
复制
Public Function IsMidnight(ByVal value As Date) As Boolean
    Return value.TimeOfDay = TimeSpan.FromHours(0)
End Function

示例2

代码语言:javascript
复制
Public Function IsMidnight(ByVal value As Date) As Boolean
    Return value.CompareTo(value.[Date]) = 0
End Function
EN

回答 2

Stack Overflow用户

发布于 2009-03-25 12:56:22

这是一些微优化,任何一种方法都可以很好地工作。

无论如何,我认为这是性能最好的:

代码语言:javascript
复制
Public Function IsMidnight(ByVal value As Date) As Boolean
   Return value.TimeOfDay.Ticks = 0
End Function

如果你想要易于理解的代码,也许这是最好的:

代码语言:javascript
复制
Public Function IsMidnight(ByVal value As Date) As Boolean
   Return value.TimeOfDay = TimeSpan.Zero
End Function
票数 7
EN

Stack Overflow用户

发布于 2009-03-25 12:53:48

视情况而定。您是想检查午夜到第二个小时的准确时间,还是仅仅检查现在是午夜时间?

午夜时分

代码语言:javascript
复制
Public Function IsMidnightHour(ByVal date as Date) As Boolean
  return date.Hour = 0
End Function

半夜的小时和分钟

代码语言:javascript
复制
Public Function IsMidnightHourAndMinute(ByVal date as Date) As Boolean
  return date.Hour = 0 AndAlso date.Minute = 0
End Function

为了简单起见,你可以使用你的例子。然而,这将包括直到毫秒的检查,这可能不是您想要的。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/681435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档