gpt4 book ai didi

c# - 如何计算以毫秒为单位的两个 DateTime 之间的差异?

转载 作者:太空狗 更新时间:2023-10-30 00:44:12 26 4
gpt4 key购买 nike

根据 msdn DateTime 精度为 10 毫秒。因此,下面示例中的 t2-t1 精度也是 10 毫秒。然而,返回值是“双倍”,这令人困惑。

DateTime t1 = DateTime.Now; // precision is 10 ms
....
DateTime t2 = DateTime.Now; // precision is 10 ms
... (t2-t1).TotalMilliseconds; // double (so precision is less than 1 ms???)

我期望 int 值,因为当精度为 10 毫秒时,double 值没有意义。我需要在 Thread.Sleep() 中使用结果值。我应该只转换为 int 吗?

最佳答案

DateTime 本身的精度取决于刻度。

DateTime.Now 的粒度通常为 10 或 15 毫秒 - 这是系统时钟的粒度。 (请注意,这并不意味着时钟准确到最近的 10 或 15 毫秒。)DateTime 上的减法运算符不应该知道或关心这一点 -结果只是一个 TimeSpan,它同样具有滴答级别的精度。

只需转换为 int 就绝对没问题。

(顺便说一句,您可能想阅读关于此的 Eric Lippert's blog post。)

关于c# - 如何计算以毫秒为单位的两个 DateTime 之间的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8471370/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com