我需要添加2个从文本框中取出的时间范围:mm:ss.fff
例如:
00:59,800
+ 00:02,300
-
结果应为01:02.100
,但我有01:02,060
。
我认为我的转化问题如下:
string Sum1 = "00:" + "00:59,800";
Sum1 = Sum1.Replace(',', '.');
double FSum1 = TimeSpan.Parse(Sum1).TotalSeconds;
string Sum2 = "00:" + "00:02,300";
Sum2 = Sum2.Replace(',', '.');
double FSum2 = TimeSpan.Parse(Sum2).TotalSeconds;
double SumResult = FSum1 + FSum2;
maskedTextBoxSumResult.Text = TimeSpan.FromMinutes(SumResult).ToString(@"hh\:mm\:ss\.fff");
另外,我需要对减法做同样的事情。
感谢您的帮助。
答案 0 :(得分:9)
您在寻找TimeSpan.ParseExact
吗?
string left = "00:59,800";
string right = "00:02,300";
var result = TimeSpan.ParseExact(left, @"mm\:ss\,fff", CultureInfo.InvariantCulture) +
TimeSpan.ParseExact(right, @"mm\:ss\,fff", CultureInfo.InvariantCulture);
Console.Write(result.ToString(@"mm\:ss\.fff"));
结果:
01:02.100
答案 1 :(得分:0)
这是我的解决方案
TimeSpan t1 = TimeSpan.Parse(maskedTextBoxSum1.Text);
TimeSpan t2 = TimeSpan.Parse(maskedTextBoxSum2.Text);
TimeSpan t3 = t1.Add(t2);
maskedTextBoxSumResult.Text = t3.ToString(@"hh\:mm\:ss\.fff");
由于
答案 2 :(得分:0)
不要修改字符串以使其解析。请改用正确的文化信息:
string Sum1 = "00:" + "00:59,800";
string Sum2 = "00:" + "00:02,300";
var frfr = new System.Globalization.CultureInfo("fr-FR");
var FSum1 = TimeSpan.Parse(Sum1, frfr);
var FSum2 = TimeSpan.Parse(Sum2, frfr);;
var SumResult = FSum1 + FSum2;
SumResult.ToString(@"hh\:mm\:ss\.fff").Dump();
答案 3 :(得分:-1)
您不需要转换为double来对值进行求和。
字符串Sum1 =“00:”+“00:59,800”; string Sum2 =“00:”+“00:02,300”;
TimeSpan sumResult = TimeSpan.Parse(Sum1)+ TimeSpan.Parse(Sum2);
maskedTextBoxSumResult.Text = sumResult.ToString(@“hh:mm:ss.fff”);
答案 4 :(得分:-2)
您的许多转化都是不必要的。试试这个:
static void Main()
{
string Sum1 = "00:" + "00:59,800";
Sum1 = Sum1.Replace(',', '.');
var FSum1 = TimeSpan.Parse(Sum1);
string Sum2 = "00:" + "00:02,300";
Sum2 = Sum2.Replace(',', '.');
var FSum2 = TimeSpan.Parse(Sum2);
var SumResult = FSum1 + FSum2;
var bo = SumResult.ToString(@"hh\:mm\:ss\.fff");
Console.WriteLine(bo);
Console.ReadLine();
}