搜索堆栈溢出后,我似乎无法找到解决方案。我已经整理了一个图表(Chart.js),我需要抓住当前一周绑定到图表的天数,并将任何天数与存储在我的数据库中的一天匹配,从而根据该日期回收所有数据。
因此,如果有人能够在本周提供关于获取List的任何指示,那就太棒了。
我希望这很清楚,请随时提出更多问题。对不起没有代码正在努力开始。对我来说,DateTime是一个绝对的噩梦。
问候,
答案 0 :(得分:7)
您可以使用DateTime
的{{3}}属性:
new DateTime(2014,11,16).DayOfWeek
所以...要处理日期列表,首先,让我们列出日期:
var startDate = DateTime.Today;
var endDate = startDate.AddDays(7);
//the number of days in our range of dates
var numDays = (int)((endDate - startDate).TotalDays);
List<DateTime> myDates = Enumerable
//creates an IEnumerable of ints from 0 to numDays
.Range(0, numDays)
//now for each of those numbers (0..numDays),
//select startDate plus x number of days
.Select(x => startDate.AddDays(x))
//and make a list
.ToList();
并获得一周的日子:
List<string> myDaysOfWeek = myDates.Select(d => d.DayOfWeek.ToString()).ToList();
如果您希望在上周一开始(例如)上周,您可以更改startDate
,如下所示:
startDate = startDate
.AddDays(-(((startDate.DayOfWeek - DayOfWeek.Monday) + 7) % 7));
这是有效的,因为我们可以将DayOfWeek
的枚举值视为数字,因此我们可以从Monday
(值0)中减去Sunday
(值1),得到-1。 ..然后我们使用模数学将这个值包装到6
。如果从开始日期中减去结果值(以天为单位),则会在上一个星期一结束。
答案 1 :(得分:1)
如果您想知道当周的日期,您需要:
Get the current day
Convert it to an integer
Subtract that many days from the current date. That gives you the date for Sunday.
Create a list, starting with Sunday.
所以:
var now = DateTime.Now;
var currentDay = now.DayOfWeek;
int days = (int)currentDay;
DateTime sunday = now.AddDays(-days);
var daysThisWeek = Enumerable.Range(0, 7)
.Select(d => sunday.AddDays(d))
.ToList();