日期范围是日期范围

时间:2015-11-09 17:38:24

标签: c# date

我有两个日期范围如下:

  

范围1:fromDate = 12/27/2015 toDate = 02/10/2016

     

范围2:startOfMonth = 01/01/2016 endOfMonth = 01/31/2016

我想要做的是返回一个布尔值(true),如果from / to date范围在startMonth / endMonth范围内,即使它只是1天。我一次显示1个月,所以在我的例子中,如果我选择12月15日,1月16日或2月16日,这将返回true。

从/到日期范围可能是几个月,一个月内的几天或一个月中的一天。如果日期在startMonth-endMonth范围内,那么我只想返回一个布尔值。我已尝试过各种日期比较操作,但由于根据所选月份评估了2个日期范围,因此似乎无法使其正常工作。

到目前为止,我所做的工作如下所示,几乎可以满足我的需求,但不包括上述范围1。 2月16日没有返回有效。

if ((monthStart >= fromDate && monthEnd <= toDate) || (monthStart <= fromDate && monthEnd >= toDate))

任何帮助或指示都将不胜感激。

2 个答案:

答案 0 :(得分:0)

为什么不检查:

if(startOfMonth >= fromDate  && endOfMonth <= toDate) { /* ... */ } else { /* ... */ }

答案 1 :(得分:0)

我使用以下逻辑工作。

if ((fromDate <= monthEnd) && (toDate >= monthStart)
{
    return true;
}

现在正确显示范围。在我的示例范围

  

fromDate = 12/27/2015

     

toDate = 02/10/2016

我收到12月15日,1月16日和2月16日的真实回复。