簡體   English   中英

將時間字符串解析為十進制?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM