1

私はこの機能を持っています:

  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 を返す必要があります。

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 に答える