Tôi đang viết một nhà xuất khẩu Excel cho một ứng dụng riêng biệt mà tôi đang tạo và tôi có câu hỏi về việc nhóm LINQ trong C#.Cách nhóm ngày theo tuần?
Về cơ bản, lớp xuất bản Excel mới này được cung cấp hai ngày. Lớp này sẽ truy lục tất cả các lô hàng giữa phạm vi ngày này.
Là một phần của nhà xuất khẩu này, tôi cần có thể nhóm ngày thành các tuần và nhận được các giá trị cho tuần đó. Vì vậy, ví dụ, nếu tôi được cung cấp 07/12/2011 và 22/12/2011 (định dạng dd/MM/yyyy), tôi cần phải nhóm tất cả các lô hàng giữa chúng vào khoảng tuần (mỗi tuần bắt đầu từ Chủ Nhật). Kết quả lý tưởng sử dụng các ngày ở trên sẽ là
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)
Bất kỳ ý tưởng nào?
tôi đến câu hỏi này, bởi vì tôi đã có mã mà nhìn rất giống câu trả lời được chấp nhận. Tôi không thích nó vì cùng lý do bạn nói. Mã này đơn giản hơn và có công việc phân đoạn ngày tốt hơn. Cảm ơn! Ngoài ra, bạn có thể phân đoạn bằng cách sử dụng một ngày khác trong tuần (như Thứ Hai) bằng cách chỉ thêm ngày đó vào kết quả này. – user1304444
Tôi đã sửa đổi đề xuất trong câu trả lời (câu trả lời tuyệt vời btw) để "snap" datetime đến khoảng thời gian gần nhất. 'group by date.AddDays (((int) date.DayOfWeek) <4? (- (int) date.DayOfWeek): (- (int) date.DayOfWeek + 7))' – g2server