C# 检查重叠日期

C# 检查重叠日期,c#,datetime,C#,Datetime,我有4个日期开始日期,结束日期,周期开始日期,周期结束日期 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 {

我有4个日期
开始日期
结束日期
周期开始日期
周期结束日期

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;
}
如果
startDate
endDate
表示的周期与
periodStartDate
periodsenddate
表示的周期重叠,我需要一个方法返回true

这是C#3.5,所以不能使用元组。喜欢建议的链接吗

我的大脑好像不工作了,有人能帮我一下吗


谢谢

假设结束日期始终等于或晚于开始日期:

return startDate <= periodEndDate;

返回起始日期假设结束日期始终等于或晚于开始日期:

return startDate <= periodEndDate;

返回起始日期您只需检查结束日期是在periodStartDate之前还是在periodEndDate之后。
(假设startDate 编码

if (endDate < periodStartDate || periodEndDate < startDate) return false;  
else return true;  
if(endDate
或在visual=)

startDate------endDate
periodStartDate------periodsenddate


periodStartDate------periodEndDate
startDate------endDate
您只需检查endDate是在periodStartDate之前还是在periodEndDate之后。
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;
}
(假设startDate 编码

if (endDate < periodStartDate || periodEndDate < startDate) return false;  
else return true;  
if(endDate
或在visual=)

startDate------endDate
periodStartDate------periodsenddate


periodStartDate------periodEndDate
startDate------endDate
if(startDate
if)(startDate我想这应该是你想要的

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;
}
 {
            if (startDate < periodStartDate)
            {
                if (endDate>=periodStartDate)
                {
                    return true;
                }
                else
                {
                    return false;
                }                             
            }
            else
            {
                if (startDate <= periodEndDate)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }
{
if(起始日期<周期起始日期)
{
如果(结束日期>=周期开始日期)
{
返回true;
}
其他的
{
返回false;
}                             
}
其他的
{

如果(开始日期我想这应该是你想要的

 {
            if (startDate < periodStartDate)
            {
                if (endDate>=periodStartDate)
                {
                    return true;
                }
                else
                {
                    return false;
                }                             
            }
            else
            {
                if (startDate <= periodEndDate)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }
{
if(起始日期<周期起始日期)
{
如果(结束日期>=周期开始日期)
{
返回true;
}
其他的
{
返回false;
}                             
}
其他的
{

如果(开始日期重复?如果不使用“之间”这个词,你会如何向人类解释?完全那样写下来!;-)你没有发现任何有用的答案吗?@Niklas不,不是刚刚离开我的办公桌。我现在正在检查它们重复?如果不使用“之间”这个词,你会如何向人类解释?就这样写下来!;-)你没有发现任何有用的答案吗?@Niklas没有,不是刚刚离开我的办公桌。我现在正在检查它们什么?如果startDateperiodsend}之前;如果start>=periodStart,那么{start->end}在{periodStart->periodsend}之后。在所有其他情况下,它们都重叠。我想如果它们相等,则可以争论日期是否重叠(如果它们相等=),这在否定中是正确的:如果endDate end}在{periodStart->periodsend}之前;如果start>=periodStart,则{start->end}位于{periodStart->periodsend}之后。在所有其他情况下,它们都重叠。我想如果它们相等,则可能会争论日期是否重叠=)