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

編集:

DB に日付を含むテーブルがあり、すべてのレコードを取得するときに、これらの日付に従ってデータをフィルター処理し、週単位で表示する必要があります。

4

2 に答える 2

2

ある意味でリストから日付をグループ化したい場合、同じ週の日付は同じグループになります。私はそれがこのように行われるべきだと思います:

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

var dtf = DateTimeFormatInfo.CurrentInfo;

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

その後、選択した週から日付を選択できます。

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

または単にすべてのグループを反復処理します。

foreach(var g in groupedDates)
{
    // (...)
    // g.Key is #nr of the week
    // g is IEnumerable<DateTime> with dates within that week
}
于 2012-12-27T12:26:28.097 に答える
0

データベースからこれらのレコードをどのように選択していますか?

多分あなたはSQLでそれを扱うことができます:

SELECT DATEPART(WK, date_column) FROM table;

日付の週番号が返されるため、その週の最初の日または最後の日を取得できます。

于 2012-12-27T12:37:10.157 に答える