我有这个功能:
public static decimal Hours(string s)
{
return (decimal)TimeSpan.Parse(s).TotalHours + 0.005M;
}
格式为小时:分钟,例如:30:20或10:17。如果我写的话它会失败,因为它超过24小时就说25:03或30:20。有没有办法让它解析一些> 23:59? 简单地说,如果我的字符串是30:30,则此函数需要返回30.5。
答案 0 :(得分:0)
我不确定是否可以使用标准TimeSpan.Parse()
方法完成,但您可以这样做:
public static decimal Hours(string s)
{
decimal r;
if (decimal.TryParse(s, out r))
return r;
var parts = s.Split(':');
return (decimal)new TimeSpan(int.Parse(parts[0]), int.Parse(parts[1]),0).TotalHours;
}