0

In Linq to SQL is it possible to group by Week Number of Work week, not weeks from year, for example 1/1/2016 is in the same week of 12/31/2015 it is not the same week of the year (but it is in the same physical week if you will)

ekad
  • 14,436
  • 26
  • 44
  • 46

1 Answers1

0

Here is an example of grouping by the work week, with work weeks numbered from the oldest date in MyTable

using(var ctx = new MyEntities())
{
    DateTime firstDate = ctx.MyTable.OrderBy(x => x.Date).First().Date;
    var dates = ctx.MyTable.OrderBy(x => x.Date).Select(x => new { iVal = SqlFunctions.DateDiff("week", firstDate, x.Date), date = x.Date}).ToList();
    var datesGrouped = ctx.MyTable.OrderBy(x => x.Date).Select(x => new { iVal = SqlFunctions.DateDiff("week", firstDate, x.Date), date = x.Date}).GroupBy(x => x.iVal).ToList();
    Console.WriteLine("Ungrouped:");
    dates.ForEach(x => Console.WriteLine("Week #: " + x.iVal + " Date: " + x.date));
    Console.WriteLine("Grouped:");
    datesGrouped.ForEach(x => Console.WriteLine("Week #: " + x.Key + " Date: " + x.First().date));
    Console.ReadLine();
}
Jakotheshadows
  • 1,485
  • 2
  • 13
  • 24