2次跨度之间的时差无法返回预期数据

Jas*_*son 3 c# timespan

我在下面创建了2个时间跨度:

TimeSpan currentTs = TimeSpan.FromSeconds(43995); //12:13:15
TimeSpan towTime = TimeSpan.FromSeconds(303072); //12:11:12
Run Code Online (Sandbox Code Playgroud)

我试图找到以分钟为单位的差异(经过我传递的秒数,看来它们是在不同的日子)。我希望相差2分钟左右,但实际上,我得到-57分钟。

int timeDifference = (int)currentTs.Subtract(towTime).Minutes;
Run Code Online (Sandbox Code Playgroud)

有人可以解释我在做什么错吗?

Bod*_*ick 5

如果您只是在寻找分钟数之间的差异(不包括天数,小时数或秒数),则可以使用

double timeDifference = currentTs.Minutes - towTime.Minutes; // 2
Run Code Online (Sandbox Code Playgroud)

不过,这只是分钟部分的区别。正如其他人所说,这些时间间隔3天,因此TimeSpan可能不是理想的选择。

或者,如果您还希望将秒数包括在内,则可以使用

TimeSpan minutes1 = new TimeSpan (0, currentTs.Minutes, currentTs.Seconds);
TimeSpan minutes2 = new TimeSpan (0, towTime.Minutes, towTime.Seconds);

double timeDifference = minutes1.TotalMinutes - minutes2.TotalMinutes // 2.05;
Run Code Online (Sandbox Code Playgroud)