在我WPF
applicatin琛字符串我有一些字符串看起來像0:22:49
,0:08:00
,0:06:31
,..格式爲hour:minute:second
,我需要總結這些字符串隨着時間的進一步計算,像師和平方根表示時間
要更多一些,我需要計算average
這組時間
在我WPF
applicatin琛字符串我有一些字符串看起來像0:22:49
,0:08:00
,0:06:31
,..格式爲hour:minute:second
,我需要總結這些字符串隨着時間的進一步計算,像師和平方根表示時間
要更多一些,我需要計算average
這組時間
您可以使用TimeSpan
類,並將其轉換爲Ticks,Milliseconds,Seconds或Minutes,具體取決於您計算所需的精度。完成計算後,您可以轉換回Timespans。
要更多一些,我需要計算該組時間
這裏的平均值和標準偏差是你需要的總和,平均值和標準偏差計算的樣本:
var values = new []
{
TimeSpan.Parse("0:22:49").TotalSeconds,
TimeSpan.Parse("0:08:00").TotalSeconds,
TimeSpan.Parse("0:06:31").TotalSeconds
};
var sum = values.Sum();
var avg = values.Average();
var stdev = Math.Sqrt(values.Average(v => Math.Pow(v - avg, 2)));
var total = TimeSpan.FromSeconds(sum);
var average = TimeSpan.FromSeconds(avg); ;
var standardev = TimeSpan.FromSeconds(stdev); ;
Console.WriteLine("Sum: " + total);
Console.WriteLine("Avg: " + average);
Console.WriteLine("StDev: " + standardev);
將它們轉換爲TimeSpan的standard deviation
然後把它們加起來
vat total = TimeSpan.Parse("0:22:49") + TimeSpan.Parse("0:08:00") + TimeSpan.Parse("0:06:31")
總將等於0時37分二十〇秒
好,我想你只需要使用TimeSpan.Parse
方法等;
var t1 = TimeSpan.Parse("0:22:49");
var t2 = TimeSpan.Parse("0:08:00");
var t3 = TimeSpan.Parse("0:06:31");
var total = t1 + t2 + t3;
Console.WriteLine(total);
結果會是;
00:37:20
記住,TimeSpan.Parse(string)
方法默認使用CurrentCulture
。這意味着如果您的CurrentCulture
的TimeSeparator
property不是:
(大多數文化有:
但不是全部),則此解析操作將失敗。
在這種情況下,您可以改爲使用TimeSpan.Parse(String, IFormatProvider)
overload。
謝謝!我可以在TimeSpan上使用分割和平方根嗎?
當然可以,但不是直接。你可以使用Total*
properties的TimeSpan
結構,它們都將數字作爲double
返回。您可以將它們相互分開,也可以使用Math.Sqrt
method。
謝謝!我可以在TimeSpan上使用分割和平方根嗎? – Yona 2014-10-08 08:12:30
@Yona當然可以。更新了我的答案。 – 2014-10-08 10:51:50
請您澄清一下,如果數據是「小時:分鐘:秒」,通過在其上執行除法和平方根意味着什麼? – 2014-10-08 08:16:30
我需要計算那些時間的平均值和標準偏差@VikasGupta – Yona 2014-10-08 08:24:42
好的。在這種情況下,我不認爲Timespan直接支持分割和平方根。您必須選擇合適的單位,如秒,或分鐘('TimeSpan.TotalSeconds'),對這些值執行這些操作,然後根據需要將它們轉換回'TimeSpan'('TimeSpan.FromSeconds')。 – 2014-10-08 08:35:06