根据计算更改时间

时间:2017-01-17 04:59:18

标签: c# datetime

我想根据计算结果从我的日期时间变量中添加/减去X小时。我尝试了以下语法

string lsdt;
var hours = (dt1 - dt2).TotalHours;
var CalculatedDT = Convert.ToDateTime(lsdt.AddHours(hours));

告诉我错误

  

'串'不包含' AddHours'的定义没有扩展方法' AddHours'接受类型' string'的第一个参数。可以找到

hours变量string中减去变量lsdt的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

lsdt 不是 DateTime变量,而是string。因此,您收到错误消息:

  

'string'不包含'AddHours'的定义,也没有扩展名   方法'AddHours'接受'string'类型的第一个参数可能是   结果

您必须先将string转换为DateTime结构:

DateTime dt = DateTime.Parse(lsdt);

然后您可以使用AddHours结构可用的DateTime方法:

var hours = (dt1 - dt2).TotalHours;
var CalculatedDT = dt.AddHours(hours);

对于更安全的方法,正如Joel Etheron所建议的那样,在使用之前,您还可以使用TryParse检查解析的string的有效性:

DateTime dt;
bool result = DateTime.TryParse(lsdt, out dt);
if (!result) {
    //Do something, don't continue
}