1

私は日付から始まるデータを持っており01/02/2011、毎日更新されます。

日付から始まる週を使用してデータをフォーマットしたい01/02/2011

私は実体を持っています

public DateTime? MeasurementDate { get; set; }

日付の形式:2011-02-01 00:00:00.0000000

これは私にデータベースからの日付を与えます..

linq BY Weekでデータをグループ化したいですか?

手伝って頂けますか?

4

3 に答える 3

3

Linq-To-Entitiesを使用している場合は、次のことができます。

source.GroupBy(x => SqlFunctions.DatePart("ww", x.MeasurementDate));
于 2013-02-06T14:49:22.083 に答える
1

クラスのGetWeekOfYearメソッドを使用するCalendar

var dt = new List<DateTime?> { /*...*/ };
var dfi = DateTimeFormatInfo.CurrentInfo;
var ordered = dt
    .Where(x => x.HasValue)
    .OrderBy(x => dfi.Calendar.GetWeekOfYear(x.Value, CalendarWeekRule.FirstDay, DayOfWeek.Monday));
于 2013-01-30T07:25:01.630 に答える
0

または、週の最初の日の日付を取得して、その日付でグループ化することもできます。

週の最初の日の日付を取得します。このコードを使用できます:

public static class DateTimeExtensions
{
    public static DateTime StartOfWeek(this DateTime dt, DayOfWeek startOfWeek)
    {
        int diff = dt.DayOfWeek - startOfWeek;
        if (diff < 0)
        {
            diff += 7;
        }
        return dt.AddDays(-1 * diff).Date;
    }
}

次に、次のように週の最初の日付でグループ化できます。

source.GroupBy(i => i.MeasurementDate.StartOfWeek(DayOfWeek.Monday));

参照

于 2017-07-11T16:04:10.300 に答える