[英]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.