我在认知上正在与一个可能相当简单的问题作斗争.给定特定的DateTime
,我如何验证此日期(不计算其年份)位于其他两个日期之间?
举个例子:
DateTime toCheck = new DateTime(1900, 3, 4);
DateTime min = new DateTime(2024, 1, 1);
DateTime max = new DateTime(2024, 12, 31);
// True - 'toCheck' is between 'min' and 'max'
在上面的代码片段中,toCheck
介于min
和max
之间,因为3rd April介于1st January和31st December之间.我可以很容易地用new DateTime(min.Year, toCheck.Month, toCheck.Day) >= min && new DateTime(max.Year, toCheck.Month, toCheck.Day) <= max;
这样的东西来验证这一点.
然而,我意识到,当年份重叠时,情况会变得更加复杂.例如,在下面的场景中,January 1st介于December 1st和February 1st之间,但我的判断失败(显然).
DateTime toCheck = new DateTime(1900, 1, 1);
DateTime min = new DateTime(2024, 12, 1);
DateTime max = new DateTime(2025, 2, 1);
// False - but should actually be True :(
我就是想不出一个通用的、防弹的解决方案.如有任何帮助,我们将非常感激.