解析TimeSpan大于24小时?

时间:2013-04-01 20:31:27

标签: c# asp.net

我有这个功能:

  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。

1 个答案:

答案 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;
}