1

我有这个功能:

  public static decimal Hours(string s)
    {    
        return (decimal)TimeSpan.Parse(s).TotalHours + 0.005M;
    }

格式为小时:分钟,例如:30:20 或 10:17。如果我写给它说 25:03 或 30:20 它会失败,因为它已经超过 24 小时。有没有办法让它解析 > 23:59 的东西?简单来说,如果我的字符串是 30:30,这个函数需要返回 30.5。

4

1 回答 1

1

我不确定是否可以使用标准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;
}
于 2013-04-01T20:44:38.903 回答