Delphi:Chênh lệch giữa tính toán ngày/giờ trong C# so với Delphi
SecondsBetween(StrToDateTime('16/02/2009 11:25:34 p.m.'), StrToDateTime('1/01/2005 12:00:00 a.m.'));
130289133
C#:
TimeSpan span = DateTime.Parse("16/02/2009 11:25:34 p.m.").Subtract(DateTime.Parse("1/01/2005 12:00:00 a.m."));
130289134
Nó không phù hợp một trong hai. Một số ngày sẽ thêm lên như nhau, tức là ..
TimeSpan span = DateTime.Parse("16/11/2011 11:25:43 p.m.").Subtract(DateTime.Parse("1/01/2005 12:00:00 a.m."));
SecondsBetween(StrToDateTime('16/11/2011 11:25:43 p.m.'), StrToDateTime('1/01/2005 12:00:00 a.m.'));
both give
216905143
Tổng số tiền của giây là thực sự được sử dụng để mã hóa dữ liệu, và tôi đang cố gắng để cổng ứng dụng với C#, vì vậy ngay cả một giây hoàn toàn ném tất cả mọi thứ tắt.
Ai có thể giải thích sự khác biệt không? Và có cách nào để có được C# để phù hợp với delphi?
Chỉnh sửa: Để phản hồi các đề xuất có thể có liên quan đến bước nhảy vọt thứ hai: Cả hai phạm vi ngày có cùng số giây nhảy vọt (2), vì vậy bạn mong đợi không phù hợp cho cả hai. Nhưng thay vào đó, chúng tôi thấy sự không nhất quán
16/02/2009 - 1/01/2005 = Delphi and C# calculate a different total seconds
16/11/2011 - 1/01/2005 = They calculate the same total seconds
Vấn đề thú vị nhưng bạn _should_ đặt câu hỏi. –
Có lẽ hai hệ thống xử lý [giây nhảy vọt] (http://en.wikipedia.org/wiki/Leap_second) khác nhau? – dasblinkenlight
@Austin Salonen Tôi đã thêm phần câu hỏi cho bạn: P – NoPyGod