推荐的方法来计算两个时间跨度之间的差异

时间:2012-01-06 06:01:52

标签: c# datetime .net-cf-3.5

计算精确到达微秒级别的时间差异的最佳方法应该是什么。目前我正在做如下:

((TimeSpan)(DateTime.Now - _perfClock)).TotalMilliseconds

注意:perfClock是DateTime(在任务之前设置)

假设准确度高达毫秒,但在我的情况下,它显示的值以“000”结尾。像8000,9000等...... 这迫使我认为只是将秒转换为某个毫秒,而不是以毫秒为单位计算差异。 (可能我在上面的代码中出错了。)

但是,准确的时间差计算的推荐机制应该是什么?

-Sumeet

3 个答案:

答案 0 :(得分:2)

问题不在于TimeSpan,即精确到刻度,这是100纳秒。

问题是您正在使用DateTime.Now作为计时器。

DateTime.Now准确到16毫米我相信。如V4Vendetta所述,如果您需要“高分辨率”结果,则需要使用秒表。秒表可以为您提供刻度线(长)或TimeSpan。使用Timespan进行简单操作(在您的情况下,添加/减去)。

另请注意,秒表提供.IsHighResolution属性,以查看您是否具有比Datetime更好的准确性。现在(在PC上始终如此)

答案 1 :(得分:0)

我不知道你在测量时间的背景,但最好先用Stopwatch开始检查你的结果。

另外值得一读Precise Measurement

答案 2 :(得分:0)

你试过了吗?

TimeSpan diff = DateTime.Now.Subtract(_perfClock);