排除范围内的日期时间

时间:2018-10-17 21:45:20

标签: c# .net model-view-controller

我想澄清一下日期时间范围逻辑的准确性,我想排除任何存在于不可用日期范围内的日期。

即如果开始17/10/2018-22:35 ||结束日期2018年10月17日23:00是不可用的日期,则结果不应包含在这两个DateTime之间位于其Start和End属性的对象。

谢谢

var unavailable = new List<obj>();
var available = new List<obj>();

var result = available.Where(x => !unavailable.Any(y => y.Start > x.Start && y.End < 
x.End);

public class obj 
{
   public DateTime Start {get; set;}
   public DateTime End {get; set;}
}

1 个答案:

答案 0 :(得分:0)

您的重叠逻辑有缺陷。做到(触碰边缘独占):

var result = available.Where(x => 
     !unavailable.Any(y => y.Start < x.End && y.End > x.Start));

public class DateRange // obj is awkward naming 
{
   public DateTime Start {get; set;}
   public DateTime End {get; set;}
}