Estoy escribiendo un exportador de Excel para una aplicación a medida que estoy creando, y tengo una pregunta sobre la agrupación LINQ en C#.¿Cómo se agrupan las fechas por semana?
Básicamente, esta nueva clase de exportador de Excel tiene dos fechas. La clase luego recupera todos los envíos entre este rango de fechas.
Como parte de este exportador, debo ser capaz de agrupar las fechas en semanas y obtener los valores para esa semana. Entonces, por ejemplo, si me dan el 07/12/2011 y el 22/12/2011 (formato dd/MM/aaaa), debo agrupar todos los envíos entre ellos en semanas (cada semana a partir del domingo). El resultado ideal usando las fechas anteriores sería
Week 1: (consignments between 04/12/2011 and 10/12/2011)
Week 2: (consignments between 11/12/2011 and 17/12/2011)
Week 3: (consignments between 18/11/2011 and 24/12/2011)
¿Alguna idea?
llegué a esta pregunta, porque ya tenía el código que se parecía mucho a la respuesta aceptada. No me gustó por las mismas razones que usted dice. Este código es más simple y hace un mejor trabajo al segmentar los días. ¡Gracias! Además, puede segmentar usando un día diferente de la semana (como los lunes) simplemente agregando ese día a este resultado. – user1304444
Modifiqué la sugerencia en la respuesta (gran respuesta por cierto) para "ajustar" la fecha y hora al período más cercano. 'group by date.AddDays (((int) date.DayOfWeek) <4? (- (int) date.DayOfWeek): (- (int) date.DayOfWeek + 7))' – g2server