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#,因此即使是一秒也会完全抛弃一切。
有人能解释一下这种差异吗?有没有办法让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
问题似乎与此相关QC 59310 http://qc.embarcadero.com/wc/qcmain.aspx?d=59310,该错误已在 Delphi XE 中修复。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)