Parse time string to decimal?
c#
Solution
The following will output `2.75`:
TimeSpan time = TimeSpan.Parse("2:45");
decimal d = (decimal) time.TotalHours;
Console.WriteLine(d);
Note that the `TimeSpan.TotalHours` property is of type `double`, not `decimal`.
From the documentation for the `TimeSpan.Parse` method, it will throw an `OverflowException` if "At least one of the days, hours, minutes, or seconds components is outside its valid range", so that should take care of input validation for you. See also the `TimeSpan.TryParse` method.
Problem
In .Net, is there a way to convert, say, `'2:45'` to the decimal 2.75? ex: ``` decimal d = TimeToDecimal("2:45"); Console.WriteLine(d); //output is 2.75 ``` It should throw an exception if invalid data, ex, minutes < 0 < 60 or not in the h:m format. Thanks