【发布时间】:2024-08-18 18:20:02
【问题描述】:
我有一个约会列表,其中包含开始日期、结束日期和全天标志。
我希望能够输出当天的所有记录。
示例记录:
ID Start, End, AllDay
1 27/11/2016 00:00 30/11/2016 00:00 true
2 30/11/2016 00:00 01/12/2016 00:00 true
3 30/11/2016 00:00 03/12/2016 00:00 true
4 30/11/2016 00:00 05/12/2016 00:00 true
5 01/12/2016 10:00 01/12/2016 15:00 false
6 02/12/2016 09:00 02/12/2016 11:00 false
鉴于此示例数据,并假设日期是 01/12/2016 我如何获得查询以输出以下内容:
ID Start, End, AllDay
2 30/11/2016 00:00 01/12/2016 00:00 true
3 30/11/2016 00:00 03/12/2016 00:00 true
4 30/11/2016 00:00 05/12/2016 00:00 true
5 01/12/2016 10:00 01/12/2016 15:00 false
我有 2 个查询,它们都返回仅部分正确的输出:
start = DateTime.Parse(DateTime.Today.ToString("dd/MM/yyyy 00:00"));
end = DateTime.Parse(DateTime.Today.AddDays(1).ToString("dd/MM/yyyy 00:00"));
var schedule = entity.Schedule.Where(x => x.Start >= start && x.End <= end && !x.AllDay)
.OrderBy(x => x.Start)
.ToList();
var alldays = entity.Schedule.Where(x => x.Start <= start && x.End => start && x.AllDay)
.OrderBy(x => x.Start)
.ToList()
【问题讨论】:
-
多近?你得到什么输出?
-
你能发布你的结果吗?开放式问题:为什么要将 DateTime 序列化为 String 以将其解析回 DateTime?如果您将日期与 = 进行比较,为什么要在相关日期(当前:今天)中添加一天?您不会删除 .AddDays 或更改与 x.End 的比较并删除 =(小于、不小于或等于)吗?
-
睡在上面,稍作调整,得到了我预期的结果。