检索一周至今计算值的算法是什么?

本文关键字:算法 是什么 计算 一周 检索 | 更新日期: 2023-09-27 17:54:45

算法需要接受一个日期,然后获取从星期一到输入日期的每一天的值。

编辑:

在数据库中,我存储了一周中每天的值。我希望能够接受日期参数,然后检索从日期参数所在星期的星期一到日期参数的值列表。2011年5月5日。检索从5月2日星期一到5月5日星期四的每一天的值。

检索一周至今计算值的算法是什么?

    static IEnumerable<DateTime> DaysFromMonday(DateTime d)
    {
        var diff = d.DayOfWeek - DayOfWeek.Monday;
        var monday = d.AddDays(-diff).Date;
        for (var day = monday; day < d; day = day.AddDays(1))
            yield return day;
    }
var DateInput = DateTime.Now;
var FromMondayToDate =
    from dateindex in Enumerable.Range(-7, 7)
    let TestDate = DateInput.AddDays(dateindex)
    let Monday = DateInput.AddDays(-(int)DateInput.DayOfWeek + (int)DayOfWeek.Monday)
    where TestDate >= Monday
    select TestDate;
看一下你的编辑,我的回答只说到了一部分。现在您有了一个要检索值的日期列表。现在必须查询数据库,或者理想情况下通过编写相应的SQL或使用LINQ to SQL在数据库上运行上述查询。

你可以试试这个

public List<DateTime> CreateDateList(DateTime inputDate)
{ 
    List<DateTime> mondayList = new List<DateTime>();
    while(inputDate.DayOfWeek != DayOfWeek.Monday)
    {
        mondayList.Add(inputDate);
        inputDate = inputDate.AddDays(-1);
    }
    return mondayList;
}

根据您需要向前或向后更改AddDays参数