首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检索一周至今计算的值的算法是什么

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

Stack Overflow用户
提问于 2011-05-05 17:48:30
回答 3查看 131关注 0票数 0

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

编辑:

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-05 17:58:35

代码语言:javascript
运行
复制
    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;
    }
票数 2
EN

Stack Overflow用户

发布于 2011-05-05 17:55:27

代码语言:javascript
运行
复制
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在数据库上运行上面的查询。

票数 0
EN

Stack Overflow用户

发布于 2011-05-05 18:01:46

你可以试试这个

代码语言:javascript
运行
复制
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参数

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5895682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档