该算法需要接受一个日期,然后获取从星期一到输入日期的每一天的值。
编辑:
在数据库中,我存储了一周中每天的值。我希望能够接受日期参数,然后检索从该日期参数所在的星期的星期一到该日期参数的值列表。例如2011年5月5日。检索从5月2日星期一到5月5日星期四的每一天的值。
发布于 2011-05-05 17:58:35
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;
}
发布于 2011-05-05 17:55:27
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在数据库上运行上面的查询。
发布于 2011-05-05 18:01:46
你可以试试这个
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参数
https://stackoverflow.com/questions/5895682
复制相似问题