Это продолжение предыдущего вопроса: Несоответствие между вычислениями даты и времени в C # и Delphi
Я портирую корпоративное приложение, написанное на Delphi, на C #. Приложение использует очень элементарную форму шифрования для хранения текстовых файлов, которые оно генерирует. Это шифрование основано на команде Delphi SecondsBetween, которая возвращает количество секунд между двумя датами.
Проблема для меня в том, что в более старой версии Delphi (той, с которой я портирую) есть ошибка с командой SecondsBetween, которая заставляет ее возвращать значения, которые отключены на один - , но только около 50% времени
Ошибка - ошибка округления. Delphi изначально использовал Trunc вместо Round. Подробнее здесь - http://qc.embarcadero.com/wc/qcmain.aspx?d=59310
Вот код, демонстрирующий проблему:
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
Что я хотел бы сделать, так это выяснить, как я могу эмулировать это ошибочное поведение в C #, чтобы я мог читать / записывать текстовые файлы, написанные приложением Delphi.