我需要一些棘手的日期范围函数。
时间表有两件事……开始日期和时间。
结束日期可以通过以下方式计算:
ResolveEndDate(DateTime start, double hours)
{
int days = (int)Math.Floor(hours / GetDayHours());
DateTime dt = start.AddDays(days);
}
这是因为一个工作日有 N 个小时等等。
基于此,我需要找到以下项目:
- 在范围之前开始,在范围之后结束
- 开始之前和结束之内
- 从内开始,从内结束
- 开始于之后结束
我怎么能写一个 LINQ 查询来做到这一点?
鉴于这样的事情:
public static IEnumerable<Project> GetProjectRange(IEnumerable<Project> projects, DateTime start, DateTime end)
{
return from p in projects
where p.Schedule.DateFrom.Value...
select p;
}
另一个棘手的事情是只应考虑月日和年。不应该考虑时间。
1 个满足所有 4 个条件的查询。
我写这个查询没有问题,但我这样做的方式将是一个巨大的混乱。我希望有更好的方法来做日期范围。
谢谢