Kiểm tra xem Math.Abs(diff.TotalMinutes) == 0
sẽ không làm điều đó, không - đó là kiểm tra xem chúng là chính xác giống nhau không.
Bạn đang cố gắng kiểm tra xem họ có cùng một phút hay không, hoặc liệu họ có cách nhau chưa đầy một phút không? Đối với người đầu tiên, sử dụng:
where RoundToMinute(dateTime1) == RoundToMinute(dateTime2)
đã tuyên bố:
public static DateTime RoundToMinute(DateTime time)
{
return new DateTime(time.Year, time.Month, time.Day,
time.Hour, time.Minute, 0, time.Kind);
}
cho thứ hai, sử dụng:
where Math.Abs((dateTime1 - dateTime2).TotalMinutes) < 1
Bạn nên cân nhắc những gì bạn muốn kết quả là trong trường hợp đó một là địa phương và một ở UTC, nhân tiện ...
Lưu ý rằng không có gì LINQ cụ thể ở đây - giả sử bạn sử dụng LINQ to Objects. Nếu bạn đang sử dụng LINQ to SQL, thì rõ ràng là bạn không thể sử dụng các phương pháp cục bộ, và chúng ta sẽ phải xem lại ...
EDIT: Tôi vẫn chưa rõ ràng về câu hỏi của bạn. Nếu bạn cần họ để được chính xác cùng ngày/thời gian, thật dễ dàng (để sang một bên có thể địa phương vs vấn đề UTC):
where dateTime1 == dateTime2
Tuy nhiên, đó đặt ra câu hỏi về việc tại sao bạn đề cập đến "phút chính xác" trong tiêu đề câu hỏi hoặc "sử dụng độ chính xác tối đa một phút" trong phần câu hỏi. .
Nguồn
2009-08-10 18:39:34
Tôi sẽ lấy đoạn mã đó và đăng câu trả lời cho câu hỏi của bạn, theo cách đó mọi người có thể nhận xét/bỏ phiếu lên hoặc xuống riêng câu hỏi của bạn –