c#获取当前周出现的数据库中的所有日期

Sam*_*amw 0 c# linq-to-sql

试图从当前周内的数据库获取所有日期

我有email1DueDate,email2DueDate,email3DueDate

我想知道他们是否应该在本周内发送

mus*_*fan 7

首先,你应该计算一周开始和一周结束的两个DateTime值,你可以这样做(假设星期一是第一天):

DateTime startOfWeek = DateTime.Today;
int delta = DayOfWeek.Monday - startOfWeek.DayOfWeek;
startOfWeek = startOfWeek.AddDays(delta);

DateTime endOfWeek = startOfWeek.AddDays(7);
Run Code Online (Sandbox Code Playgroud)

接下来你可以在你的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)
    );
Run Code Online (Sandbox Code Playgroud)

如果这不是您所需要的,那么您需要澄清您的要求