Add*_*ddy 3 c# asp.net datetime
我有一个字符串列表,其中包含hh:mm:ss用作字符串的花费时间
00:00:40
00:01:00
00:02:10
Run Code Online (Sandbox Code Playgroud)
我想添加这些值并将其显示给用户
Total Time: 00:03:50
Run Code Online (Sandbox Code Playgroud)
我可以解析每次值到日期时间,但是如何添加它们以显示上面显示的结果.
这是我如何将字符串解析为DateTime
foreach(string itm in TimeList)
{
DateTime sTime = DateTime.ParseExact(itm , "HH:mm:ss", CultureInfo.CurrentCulture);
}
Run Code Online (Sandbox Code Playgroud)
你的解析操作很好.但是你sTime在每次迭代中都将结果分配给你,这就是为什么你丢失了除最后一个之外的所有数据.
但更重要的是DateTime,我会解析它们TimeSpan而不是更适合您的数据,因为它是一个时间间隔.
var list = new List<string>
{
"00:00:40",
"00:01:00",
"00:02:10"
};
var total = TimeSpan.Zero;
foreach (var item in list)
{
total += TimeSpan.ParseExact(item, "hh\\:mm\\:ss", CultureInfo.InvariantCulture);
}
Run Code Online (Sandbox Code Playgroud)
现在您可以将您的格式化total并向用户显示;
string.Format("Total Time: {0}",
total.ToString("hh\\:mm\\:ss", CultureInfo.InvariantCulture));
Run Code Online (Sandbox Code Playgroud)
似乎ParseExact在DotNet 3.5中不可用
然后您可以使用自.NET 1.0版本以来可用的TimeSpan.Parse方法.但我强烈建议您考虑升级您的框架版本,如果可以的话.
foreach (var item in list)
{
total += TimeSpan.Parse(item);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
131 次 |
| 最近记录: |