尝试从当前周内的数据库获取所有日期
我有email1DueDate,email2DueDate,email3DueDate
我希望看看它们是否应该在本周内发送
答案 0 :(得分:6)
首先你应该计算一周开始和一周结束的两个DateTime值,你可以这样做(假设星期一是第一天):
DateTime startOfWeek = DateTime.Today;
int delta = DayOfWeek.Monday - startOfWeek.DayOfWeek;
startOfWeek = startOfWeek.AddDays(delta);
DateTime endOfWeek = startOfWeek.AddDays(7);
接下来你可以在你的LINQ查询中使用它来获得你需要的结果,我假设你希望结果是一行,你的任何截止日期都在一周内:
var results = DB.Table.Where(x =>
(x.email1DueDate >= startOfWeek && x.email1DueDate < endOfWeek) ||
(x.email2DueDate >= startOfWeek && x.email2DueDate < endOfWeek) ||
(x.email3DueDate >= startOfWeek && x.email3DueDate < endOfWeek)
);
如果这不是您所需要的,那么您需要澄清您的要求
答案 1 :(得分:1)
LINQ
listOfDates.Where(x => x.email1DueDate > beginOfWeekDate && x.email1DueDate < endOfWeekDate).ToList();
当然,你仍然需要弄清楚开始和结束日期