【问题标题】:How to check whether C# DateTime is within a range如何检查 C# DateTime 是否在范围内
【发布时间】:2011-12-01 14:24:25
【问题描述】:

在 C# 中,我有 fromto DateTime 值,并想检查 value DateTime 是否在范围内,我该怎么做这个?

lowerBound = "01-Dec-2011 09:45:58"
upperBound = "01-Dec-2011 09:38:58"
value = "01-Dec-2011 09:49:58"

【问题讨论】:

标签: c# datetime


【解决方案1】:

只需像处理数字一样使用比较运算符:

DateTime lowerBound = new DateTime(2011, 12, 1, 9, 38, 58);
DateTime upperBound = new DateTime(2011, 12, 1, 9, 49, 58);
DateTime value = new DateTime(2011, 12, 1, 9, 45, 58);

// This is an inclusive lower bound and an exclusive upper bound.
// Adjust to taste.
if (lowerBound <= value && value < upperBound)

您需要注意这些值都是相同的“种类”(UTC、本地、非特定)。如果您想及时比较瞬间,(例如“X 是否发生在 Y 之前”),最好使用 UTC。

【讨论】:

  • 使用Between函数获取lowerBound和upperBound之间的值
  • @SreenathPlakkat:您指的是哪个Between 函数?听起来更像 SQL 而不是 C#...
  • @Jon Skeet - 另请注意,在比较期间忽略 DateTime 的 Kind 属性。
  • @Lonli-Lokli:确实,这就是为什么只使用相同类型的操作数才有意义,真的。其他任何事情都可能导致混乱。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-29
  • 2023-04-03
  • 2017-07-13
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
  • 2021-03-30
相关资源
最近更新 更多