【问题标题】:c# get all dates from database that appear with current weekc# 从数据库中获取当前周出现的所有日期
【发布时间】:2012-05-15 18:07:59
【问题描述】:

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

我有 email1DueDate、email2DueDate、email3DueDate

我想看看它们是否会在本周内发送

【问题讨论】:

标签: c# linq-to-sql


【解决方案1】:

首先,您应该计算一周开始和一周结束的两个 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)
    );

如果这不是您所需要的,那么您需要阐明您的要求

【讨论】:

    【解决方案2】:

    LINQ

    listOfDates.Where(x => x.email1DueDate > beginOfWeekDate && x.email1DueDate < endOfWeekDate).ToList();
    

    当然,您仍然需要弄清楚开始和结束日期

    【讨论】:

      猜你喜欢
      • 2023-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多