什么是最清洁的方式来检查提供的日期是否在给定的日期范围内? 例如:最清洁的方式来检查日期是否在一个范围内(可空日期)
DateTime? maxDate
DateTime? minDate
DateTime? userDate
我要检查,如果userDate在上述范围内。 min或max可以为null。
因此,例如:
minDate = new DateTime(2017, 1, 1);
maxDate = null;
userDate = new DateTime(2017, 5, 3);
在这种情况下userDate将在范围内,因为它是更大的那么的minDate并没有指定的maxDate。
我想过使用DateTime.Compare,但似乎我会创建一个混乱的if/then语句来检查userDate minDate和maxDate变量,因为DateTime.Compare将一次仅比较两个日期。
很好的答案。在旁注中,您应该[在比较日期时转换为UTC](https://stackoverflow.com/questions/6930489/safely-comparing-local-and-universal-datetimes),否则您最终可能会得到不正确的比较结果特别是如果您比较的是DST添加或删除的额外小时内的时间, –
要添加到此,您可以使用minDate.GetValueOrDefault(DateTime.MinValue) –