如何在 TimeSpan 和 DateTime 之间转换

How to convert between TimeSpan and DateTime

有点傻的问题,但我发现自己不知道如何回答。

Timespan ts = (DateTime1 - DateTime2).TotalMinutes

假设我知道 tsDateTime2,我怎样才能找到 DateTime1

您可以将 TimeSpan 添加到日期

TimeSpan ts = DateTime1 - DateTime2;

DateTime1 = DateTime2 + ts;

请注意,我删除了 TotalMinutes,因为它 returns 是 double,而不是 TimeSpan

如果你想用分钟来工作,你可以写

double minutes = (DateTime1 - DateTime2).TotalMinutes;

DateTime1 = DateTime2 + TimeSpan.FromMinutes(minutes);

请注意,分钟包含秒和秒的小数部分。如果您只需要完整的分钟数,您可以通过以下方式获得它们:

int fullMinutes = (int)Math.Floor(minutes);

您的代码无法编译。

示例:

 DateTime DateTime1 = DateTime.Now;
 DateTime DateTime2 = DateTime1.AddMinutes(-10);
 var ts = (DateTime1 - DateTime2).TotalMinutes;  //  ts is a double

 DateTime DateTime3 = DateTime1 + TimeSpan.FromMinutes(ts);