在 C# 中使用表示时间跨度的时间跨度或整数值之间的区别

bss*_*y78 3 c# datetime timespan

我有一个代码,我在其中计算日期之间的一些间隔,为此,我将定义的间隔时间添加到一个日期,为此,我看到了 2 种方法,但我不明白其中的区别,对我来说它们是一样的:

var timespan = new TimeSpan(0, 0, 5);
var d1 = new DateTime(2010, 1, 1, 8, 0, 15);

var newDateWithTimeSpan = d1.Add(timespan);
var newDateWithSeconds = d1.AddSeconds(5);

Console.WriteLine(newDateWithTimeSpan);
Console.WriteLine(newDateWithSeconds);
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 5

不,您计算新DateTime值的两种方式没有区别。通常有多种方式可以表达相同的意图,尤其是使用DateTime. (例如,您可以将其用作d1 + timespan另一种选择。)

虽然这不是实际的实现,但您可以想象AddSeconds是这样实现的:

public DateTime AddSeconds(double seconds) =>
    this.Add(TimeSpan.FromSeconds(seconds));
Run Code Online (Sandbox Code Playgroud)

这只是一种方便的方法。

我认为TimeSpan.FromSeconds在你的代码中使用是表达“我想创建一个TimeSpan代表 5 秒的”的更清晰的方式,但这是一个稍微不同的问题。