滴答中的日期时间差异不匹配

时间:2017-09-11 18:39:27

标签: c#

我有以下代码:

var a = (DateTime.Now.Subtract(DateTime.Now.AddTicks(8))).Ticks;
var b = (DateTime.Now - DateTime.Now.AddTicks(8)).Ticks;

当我检查值时,我看到:

a = -78
b = -20

为什么?不应该都是-8?

2 个答案:

答案 0 :(得分:6)

你依靠系统同时做所有事情,但事实并非如此。每次获得DateTime.Now时,它都会有不同的值。

快速实验表明,在开始时捕获DateTime.Now的值,然后对其执行操作:

var d = DateTime.Now;
var a = (d.Subtract(d.AddTicks(8))).Ticks;
var b = (d - d.AddTicks(8)).Ticks;

产生您期望的结果。 ab具有相同的值-8

答案 1 :(得分:1)

这些代码行需要时间来执行。在单个方法或操作中多次使用Now永远不会好。或者Today,就此而言。

相关问题