TimeSpan timeTaken = TimeSpan.Parse("51:45:33");
给我错误:
发生了'System.OverflowException'类型的异常 mscorlib.dll但未在用户代码中处理
其他信息:无法解析TimeSpan,因为at 至少有一个数字组件超出范围或包含 很多数字。
为什么?
答案 0 :(得分:6)
考虑使用单字符串参数的TimeSpan.Parse方法的文档 输入字符串的格式为:
[ws][-]{ d | [d.]hh:mm[:ss[.ff]] }[ws]
为简单起见,请仅考虑[d.]hh:mm[:ss]
部分,其中d
和ss
分别为天和秒,并且它们是可选的。
hh
分量是小时,范围从0到23. d
组件是
天,从0到10675199. 在您的情况下,hh:mm:ss
格式化输入51:45:33
的{{1}}个组件等于51,这就是您获得溢出异常的原因。天数可达10675199,因此您需要从51小时(即2天3小时)中选择整天。
结果代码将会显示:
hh
另请注意有关文化敏感符号TimeSpan timeTaken = TimeSpan.Parse("2.3:45:33");
和.
的信息。
要验证答案,您可以打印总分钟数
:
答案 1 :(得分:1)
以下是您的回答:http://msdn.microsoft.com/en-us/library/se73z7b9(v=vs.110).aspx
hh小时,范围从0到23.
mm分钟,范围从0到59.
ss秒,范围从0到59.