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

标签 c# datetime timespan

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

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);

最佳答案

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

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

public DateTime AddSeconds(double seconds) =>
    this.Add(TimeSpan.FromSeconds(seconds));

这只是一个方便的方法。

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

关于c# - 在 C# 中使用时间跨度或表示时间跨度的整数值之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61144707/

相关文章:

c# - 检查添加的 TimeSpans 是否超过 TimeSpan.MaxValue

c# - 将多个 .NET 二进制文件合并在一起?

c# - 在 signalr 中管理多个浏览器选项卡

php - 日期和时间差异与色差

c# - ServiceStack.OrmLite : Reading back a TimeSpan using Untyped API results in InvalidCastException

c# - 将 12 小时时间转换为时间跨度 C#

javascript - 从 webforms 项目中的 javascript 文件调用 mvc Controller

c# winform绘制闪烁图像

sql - SQL Server 中的 LEFT 函数不返回结果

Java从Microsoft SQL Server准确读取日期而不指定时区