2014-03-05 42 views
1

我想測量一些代碼執行,我需要在幾分鐘內顯示:秒。 因爲我注意到時間跨度可以更容易地格式化,我試圖用:c + + cli時間跨度格式不工作

TimeSpan ts = TimeSpan::FromTicks(complete-commence); 
String elapsedTime = TimeSpan::Format("mm", ts.Minutes); 

但不工作,儘管存在MSDN中的方法:

Error 1 error C3149: 'System::String' : cannot use this type here without a top-level '^' 
Error 2 error C2039: 'Format' : is not a member of 'System::TimeSpan' 
Error 3 error C3861: 'Format': identifier not found 

我做了什麼錯?

+0

字符串是引用類型,它缺少^帽子,TimeSpan沒有Format()方法。它的ToString()方法僅適用於.NET 4.0。一個明顯的選擇是ts.Minutes.ToString()。 –

回答

2

的語法是錯誤的,它應該是:

TimeSpan ts = TimeSpan::FromTicks(complete-commence); 
String^ elapsedTime = ts->ToString("mm\\:ss"); // "mm\\:ss" is minutes:seconds 

注意,這是加載蜱,而不是秒或毫秒的價值。例如,如果輸入數據以毫秒爲單位,您將使用:

TimeSpan ts = TimeSpan::FromMilliseconds(complete-commence); 
+0

的確,非常感謝Hans和Reed。感謝與MSS的提示! rtb1-> AppendText(「COMPLETED(」+ String :: Format(「{0:mm \\:ss}」,ts)+「)\ n」); – user1797147