Надеюсь, это поможет:
var d1 = new DateTime(1990, 1, 1);
var d2 = new DateTime(1990, 1, 2);
var d3 = new DateTime(1990, 1, 11);
var d4 = new DateTime(1990, 1, 12);
var records = new[] {
new { date = d1, freq = 1 },
new { date = d2, freq = 2 },
new { date = d3, freq = 3 },
new { date = d4, freq = 4 }
};
//ticks * WeekDays * DayHours * HourMins * MinSecs
var weekTicks = (Int64)10000000 * 7 * 24 * 60 * 60;
var res = records.GroupBy(x => x.date.Ticks / weekTicks)
.Select(x => new { week=x.Key ,sum=x.Sum(y=>y.freq)});
И вот результат:
[0] = {неделя = 99085, сумма = 3}
[1] = {неделя = 99086, сумма = 7}