我需要知道一个日期是否在一个日期范围内.我有三次约会:

// The date range
DateTime startDate;
DateTime endDate;

DateTime dateToCheck;

简单的解决方案是做一个比较,但是有没有更聪明的方法呢?

推荐答案

不,做一个简单的比较对我来说很好:

return dateToCheck >= startDate && dateToCheck < endDate;

但需要考虑的是:

  • 就时区而言,DateTime有点奇怪.可能是UTC,可能是"本地",也可能是模棱两可的.确保你是在比较苹果和苹果,事实上.
  • 考虑你的起点和终点应该是包容性还是独占性.我已经让上面的代码将其视为包含的下界和独占的上界.

.net相关问答推荐

StackExchange.Redis和NRedisStack包有什么不同?

为什么.Net 8.0.100是预览版?

.NET模拟具有泛型返回类型的方法

如何运行大量阻塞/同步 I/O 操作

为什么不能使用 null 作为 Dictionary 的键?

是否有任何为 C# 编写的模糊搜索或字符串相似函数库?

代理、包装器或外观类之间有什么区别

LINQ:确定两个序列是否包含完全相同的元素

我可以使用 UriTemplate 将非字符串传递给 WCF RESTful 服务吗?

如何将字符串列表数据绑定到 WPF/WP7 中的 ListBox?

HttpClient 和使用代理 - 不断得到 407

在 C# 中使用委托

风格上的差异:IDictionary vs Dictionary

POCO 是什么意思?

Linq to SQL - 返回前 n 行

CryptographicException 未处理:系统找不到指定的文件

为什么会出现编译错误使用未分配的局部变量?

合并两个(或更多)PDF

.NET 的 XPath 和 XSLT 2.0?

从 bcp 客户端接收到 colid 6 的无效列长度