Несоответствие между расчетами даты и времени в C # и Delphi

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

Это тоже несовместимо. Некоторые даты добавит то же самое, то есть…

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

Общее количество секунд фактически используется для кодирования данных, и я пытаюсь перенести приложение на C #, так что даже одна секунда полностью отбрасывает все.

Может Кто-нибудь объяснит это несоответствие? И есть ли способ заставить С # соответствовать delphi?

Изменить: В ответ на предположения, что это может быть связано с дополнительной секундой: оба диапазона дат содержат одинаковое количество дополнительных секунд (2), поэтому вы можно ожидать несоответствия для обоих. Но вместо этого мы видим несоответствие

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
11
задан NoPyGod 16 December 2011 в 03:52
поделиться