[英]Parse time string to decimal?
在.Net中,有没有办法将'2:45'
转换为小数2.75?
例如:
decimal d = TimeToDecimal("2:45");
Console.WriteLine(d);
//output is 2.75
如果无效数据,例如,分钟<0 <60或者不是h:m格式,它应该抛出异常。
谢谢
以下将输出2.75
:
TimeSpan time = TimeSpan.Parse("2:45");
decimal d = (decimal) time.TotalHours;
Console.WriteLine(d);
请注意, TimeSpan.TotalHours
属性的类型为double
,而不是decimal
。
从TimeSpan.Parse
方法的文档中,如果“至少有一天,小时,分钟或秒组件超出其有效范围”,它将抛出OverflowException
,因此应该为您进行输入验证。 另请参见TimeSpan.TryParse
方法 。
private decimal TimeToDecimal(string Time)
{
DateTime dt = DateTime.Parse(Time);
decimal result = dt.Hour+ (dt.Minute / 60.0m);
return result;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.