2017-01-17 128 views
1

我想基於計算結果從我的日期時間變量中添加/減去X小時。我想下面的語法基於計算的更改時間

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

呈現我的錯誤

「串」不包含「AddHours」的定義,並沒有擴展方法「AddHours」接受一個類型的第一個參數「字符串」可以發現

什麼是減去可變hoursstring變量lsdt的正確方法?

回答

3

lsdt一個DateTime變量,但一個string。因此,你得到這個錯誤信息:

「串」不包含「AddHours」的定義,並沒有擴展 法「AddHours」接受型「字符串」的第一個參數可能是 發現

你必須首先轉換您stringDateTime結構:

DateTime dt = DateTime.Parse(lsdt); 

然後你就可以利用現有的AddHours方法爲DateTime結構:

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

對於更安全的方法,因爲喬爾Etheron建議,你也可以使用TryParse來檢查解析您的string的有效性,然後再使用它:

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

'DT。 AddHours()'會給你一個dateTime對象,那麼你爲什麼要再次轉換爲DateTime? –

+1

對我來說有效的是var CalculatedDT = Convert.ToDateTime(lsdt).AddHours(hours); –

+1

@不幸運:謝謝,糾正。 – Ian