如何将双倍值转换为时间?C#/ASP.NET.
本文关键字:时间 NET ASP 转换 | 更新日期: 2023-09-27 17:55:58
如何将double
值转换为时间?例如,我有这个double
值 val = 0.00295692867015203
,我想4:15
回来。
我做了很多研究,但没有找到有效的解决方案! 这是我也尝试过的一个函数,但它返回00:00:00
:
ConvertFromDecimalToDDHHMM(Convert.ToDecimal(val));
public string ConvertFromDecimalToDDHHMM(decimal dHours) {
try {
decimal hours = Math.Floor(dHours); //take integral part
decimal minutes = (dHours - hours) * 60.0M; //multiply fractional part with 60
int D = (int)Math.Floor(dHours / 24);
int H = (int)Math.Floor(hours - (D * 24));
int M = (int)Math.Floor(minutes);
//int S = (int)Math.Floor(seconds); //add if you want seconds
string timeFormat = String.Format("{0:00}:{1:00}:{2:00}", D, H, M);
return timeFormat;
}
catch (Exception) {
throw;
}
}
我正在使用C#
和ASP.NET
. 我将不胜感激任何建议。
哇...我花了一段时间才意识到你的意思是"00:04:15.00"
....
public static TimeSpan TimeSpan.FromDays(double value)
会让你TimeSpan
DateTime.Today.AddDays(double value)
会给你一个约会时间
我想你想要像TimeSpan.FromDays(0.00295692867015203)
这样的东西.TimeSpan
函数接受一个double
值并返回TimeSpan
对象(自然): http://msdn.microsoft.com/en-us/library/system.timespan.fromdays.aspx。
然后,可以在日期时间算术中使用此TimeSpan
对象,如下所示:
var now = DateTime.Now; // say, 25/13/2013 12:23:34
var interval = TimeSpan.FromDays(0.00295692867015203); // 4:15
var futureTime = now + interval; // 25/13/2013 12:27:49
你应该试试
public static string ConvertFromDoubleToDDHHMM(double days) {
return TimeSpan.FromDays(days).ToString(@"dd':hh':mm");
}
它首先创建 TimeSpan
结构的值,然后将该值格式化为 string
。有关详细信息,请参阅 MSDN 上的自定义跨度格式字符串。
适用于 .NET 4.0 及更高版本。