如何计算x小时和分钟之前的日期和时间?

How to calculate date and time before x hours and minutes?

我想找到从现在起 x 小时 x 分钟之前的确切日期和时间。

例如 - 今天是 2/21/2016 1:15 PM,我想知道 13 小时 56 分钟或 73 小时 34 分钟之前的时间。 在 C# 中执行此操作的最简单方法是什么?

我找到了 this link,但不知道如何使用它。

示例:

int d = 0;
int h = -13;
int m = -56;
int s = 0;
DateTime past = DateTime.Now.AddDays(d).AddHours(h).AddMinutes(m).AddSeconds(s);

或者,简而言之:

DateTime past = DateTime.Now.AddHours(-13).AddMinutes(-56);

这将为您提供 13 小时 56 分钟前的时间。注意小时和分钟的减号,它们用于减去一定的时间。

查看 DateTime,以及所有以 Add 开头的方法。

使用 AddHours()AddMinutes()。也适用于负值以及时返回。

示例:

DateTime pastDate = DateTime.Now.AddHours(-74).AddMinutes(-34);

您可以轻松地使用 DateTime.AddXXX methods

例如;

var dt1 = DateTime.Now.AddHours(-13).AddMinutes(-56);

var dt1 = DateTime.Now.AddHours(-73).AddMinutes(-34);

如果您只想 结果的日期或时间部分,您可以使用它的 Date or TimeOfDay 属性。

var date = dt1.Date;

var time = dt1.TimeOfDay;

为了完整起见,您还可以对 DateTime 对象使用 TimeSpan 操作。

类似

DateTime d = ...;
DateTime newDate = d - new TimeSpan(....);