检查2个日期是否超过了其他2个日期的范围

时间:2013-11-03 16:11:37

标签: c# asp.net date

我有一个WebApplication,可以将事件管理到像Agenda这样的表中。 对于每个活动,我都有 StartDate EndDate

在应用程序中我想将事件导出到图表中,我想检查事件是否超出了所需日期的范围。

例如: 活动1:StartDate(9月9日)EndDate(9月14日)

我想检查它是否通过(9月10日 - 9月16日)

这是事件示例图片的照片: enter image description here

这是一个仅检查一个日期的代码:

public static bool Within(this DateTime current, DateTime startTime, DateTime endTime)
    {
        return startTime < currentTime < endTime;
    }

修改 为了澄清更多,我希望函数在事件超过2个日期范围时返回true, 即使它在范围之前开始或在范围之后结束它也应该返回真实。

如果未通过范围,则仅返回false。

3 个答案:

答案 0 :(得分:1)

public static bool Within(DateTime one, DateTime two,
                          DateTime lowBound, DateTime highBound)
{
    return one >= lowBound && two <= highBound;
}

答案 1 :(得分:0)

public static bool Within(this DateTime current, DateTime startTime, DateTime endTime)
    {
        return startTime < currentTime && currentTime < endTime;
    }

并打电话两次

lowDate.Within(eventStart, eventEnd) && heDate.Within(eventStart, eventEnd)

答案 2 :(得分:0)

这样得到答案:

public static bool Within(DateTime StartDate, DateTime EndDate, DateTime StartRange, DateTime EndRange)
    {
        if ((StartDate == EndDate) && (StartRange <= StartDate && StartDate <= EndRange))
            return true;
        else
            return ((StartRange >= StartDate && StartRange <= EndDate) || (EndRange >= StartDate && EndRange <= EndDate));
    }