我有4个日期startDate
、endDate
、periodStartDate
、periodEndDate
如果startDate
和endDate
表示的周期与periodStartDate
和periodEndDate
表示的周期重叠,我需要一个返回true的方法。
这是C#3.5,所以不能使用元组。如建议的链接
我的大脑好像不工作了,有人能帮帮我吗。
谢谢!
if (startDate<periodStartDate)//start date is older
{
if (periodStartDate < endDate) //if end date is later than start of period
return true;
else return false; //
}
else //period start is older
{
if (periodEndDate < startDate) //period ended before startdate
return false;
else
return true;
}
只需注意你想要的"<"one_answers"<="的位置
编辑(更优雅的解决方案(:
if (end1<start2) || (end2<start1) return false
else return true;
假设结束日期始终等于或晚于开始日期:
return startDate <= periodEndDate;
我认为这应该符合您的要求。
{
if (startDate < periodStartDate)
{
if (endDate>=periodStartDate)
{
return true;
}
else
{
return false;
}
}
else
{
if (startDate <= periodEndDate)
{
return true;
}
else
{
return false;
}
}
}
这将捕捉重叠,即使一个完整的范围包含另一个。
您只需要检查endDate是在periodStartDate之前还是在periodEndDate之后
(假设startDate<endDate和periodStartDate<periodEndDate(
代码内
if (endDate < periodStartDate || periodEndDate < startDate) return false;
else return true;
或在视觉上=(
startDate -------- endDate
periodStartDate -------- periodEndDate
periodStartDate -------- periodEndDate
startDate -------- endDate