【发布时间】:2018-11-09 17:31:33
【问题描述】:
我有一个查询,它返回一个日期范围内的事件列表。
string EOOmessage = "";[enter image description here][2]
string eventText = "";
DateTime js = DateTime.Now;
DateTime je = DateTime.Now;
var itCompareDay = (from h in db.DailyGPSTables
where (h.EventDateTime >= startDate
&& h.EventDateTime <= endDate)
select h).ToList();
我想检查每个事件的时间,以确保其顺序正确。例如 JE(Job End) 不能在 JS(Job Start) 之前。我尝试了很多方法,但这是我最新的方法。它会正确检查匹配的 JE 标签,但不考虑它所在的日期。
int rowNumber = -1;
foreach (DailyGPSTable e in itCompareDay)
{
if (e.EventType == "JS")
{
js = e.EventDateTime.Value;
}
if (e.EventType == "JE")
{
je = e.EventDateTime.Value;
}
if (je < js)
{
EOOmessage = " On " + e.EventDateTime.Value.ToShortDateString() + " Job end is before Job Start " + eventText;
errorList.Add(EOOmessage);
errorListRow.Add(rowNumber);
}
rowNumber = rowNumber + 1;
}
有没有办法每天检查乱序事件,如果发现则报告它们,如果不去第二天?
【问题讨论】:
-
其实因为属性是一个DateTime,所以应该在比较中包含日期,而不需要手动检查。
-
你给出的当前代码示例有什么问题?
-
它检查整个星期,而不仅仅是一天。
-
所以第一次它在一个 js 之前找到一个 je,但在第三个它发现另一个 je abut 没有意识到第三个还有另一个 js。好像是用一号的js。
-
我真的不明白你在问什么。您能否发布“期望的输出”,以便我们可视化您正在寻找什么样的结果?
标签: c# asp.net linq entity-framework-6