2013-05-17 54 views
12

我想使用'parse'將時間跨度變量轉換爲整型變量。我得到一個錯誤,指出:如何將時間跨度變量更改爲整數類型?

格式的例外是未處理:輸入字符串的格式不正確

這是代碼有:

private void dateTimePicker4_ValueChanged(object sender, EventArgs e) 
    { 
     TimeSpan t = dateTimePicker4.Value.ToLocalTime() - dateTimePicker3.Value.ToLocalTime(); 
     int x = int.Parse(t.ToString()); 
     y = x; 
    } 

我的目標是展示這是兩個時間選擇器在文本框中動態變化的時間,即它們之間的時間差應該自動顯示在文本框中。

+0

這在一個可怕的問題。不是問題本身,只是你正試圖解析'ToString'值。你需要養成尋找現有的屬性和方法的習慣,這些屬性和方法可能已經做到了你想要的。更經常的是,功能通常已經存在,在某處 – musefan

+0

謝謝,會牢記在心。 –

回答

22

它們之間的分鐘差異應自動顯示在 文本框中。

而不是解析使用TimeSpan.TotalMinutes屬性。

t.TotalMinutes; 

的屬性是double類型的,如果你只需要整數部分,那麼你可以這樣做:

int x = (int) t.totalMinutes; 
+0

如果差異大於Int32,例如:diff,該怎麼辦?在時間的開始和現在之間? –

+0

@SrivathsaHarishVenkataramana,使用'長'。重點是採取數字的整數部分... – Habib

4
private void dateTimePicker4_ValueChanged(object sender, EventArgs e) 
    { 
     TimeSpan t = dateTimePicker4.Value.ToLocalTime() - dateTimePicker3.Value.ToLocalTime(); 
     int x = int.Parse(t.Minutes.ToString()); 
     y = x; 
    } 

你試過將其更改爲int x = int.Parse(t.Minutes.ToString());

來自:http://msdn.microsoft.com/en-us/library/system.timespan.aspx