2012-12-27 56 views
0

我有一个日期列表,我如何从中选择一周?从日期列表中筛选一周

想这是日期列表:

02/11/2012 
11/25/2012 
04/08/2012 
12/03/2012 
04/13/2012 
04/11/2012 
12/12/2012 
01/25/2012 
04/10/2012 
04/12/2012 
04/09/2012 
05/23/2012 
10/05/2012 
01/25/2012 
04/14/2012 

提取的一周应该是这样的:

04/08/2012 
04/09/2012 
04/10/2012 
04/11/2012 
04/12/2012 
04/13/2012 
04/14/2012 

编辑:

我有一个表在包含日期的数据库中,我需要获取al l记录,根据这些日期过滤数据并在数周内查看它们。

+1

解释逻辑 – VladL

+0

你尝试过什么吗? –

回答

2

如果我理解正确,您希望以某种方式将您的列表中的日期分组,那么同一周的日期将在同一组中。我认为它应该做的事是这样的:通过各组

var myWeekDates = groupedDates.SingleOrDefault(g => g.Key == myWeekNr); 

或简单地重复:

var dates = (..) // your list of dates 

var dtf = DateTimeFormatInfo.CurrentInfo; 

var groupedDates = dates.GroupBy(d => dtf.Calendar.GetWeekOfYear(d, dtf.CalendarWeekRule, dtf.FirstDayOfWeek)); 

之后,你就可以从选择一周中选择日期

foreach(var g in groupedDates) 
{ 
    // (...) 
    // g.Key is #nr of the week 
    // g is IEnumerable<DateTime> with dates within that week 
} 
0

你是如何从数据库中选择这些记录的?

也许你可以在SQL处理:

SELECT DATEPART(WK, date_column) FROM table; 

它返回日期的周数,所以你可以得到的第一天或该周的最后一天。