检查日期时间落在两个日期之间
本文关键字:日期 之间 两个 时间 检查 | 更新日期: 2023-09-27 18:15:53
我必须检查这两个日期之间的日期时间。我有两个旧日期和两个新日期,基本上需要检查它们是否匹配。
DateTime old_start_Dt = Convert.ToDateTime("07/28/2014 3:30:00 AM");
DateTime old_end_Dt = Convert.ToDateTime("07/28/2014 4:00:00 AM");
DateTime new_start_Dt = Convert.ToDateTime("07/28/2014 3:45:00 AM");
DateTime new_end_Dt = Convert.ToDateTime("07/28/2014 5:00:00 AM");
//above dates example should found match.
bool _matchfound = false;
if ((new_start_Dt >= old_start_Dt || new_start_Dt <= old_start_Dt)
&& (new_end_Dt >= old_end_Dt || new_end_Dt <= old_end_Dt))
{
_matchfound = true;
}
猜猜我的逻辑哪里错了?
看起来您的if
语句将始终为真。假设您正在测试
new >= old || new <= old
这些中的一个无论如何都必须为真。因此,无论日期的值是多少,if
语句的两个部分都为真。
我不确定你到底想要什么,但如果你想测试新范围在旧范围内,这应该可以工作:
if (new_start_Dt >= old_start_Dt && // new starts after old starts
new_start_Dt < old_end_Dt && // new starts before old ends
new_end_Dt > old_start_Dt && // new ends after old starts
new_end_Dt <= old_end_Dt && // new ends before old ends
old_start_Dt < old_end_Dt && // old start is before old end
new_start_Dt <= new_end_Dt &&) // new start is before new end
{
...
}