如何将TimeSpan转换为浮点数,例如考虑所有处理单位(小时分钟) if(单位=小时) 将TimeSpan转换为浮动小时
在另一个上下文中,SQL Server中是否没有数据类型“Timespan”?
答案 0 :(得分:5)
使用Total*
上的TimeSpan
个属性,例如TimeSpan.TotalHours
答案 1 :(得分:0)
分钟示例:
var t = new TimeSpan();
var total = t.TotalMinutes;
答案 2 :(得分:0)
你可以做这样的事情
TimeSpan elapsedTime = new TimeSpan(125000);
float floatTimeSpan;
int seconds, milliseconds;
seconds = elapsedTime.Seconds;
milliseconds = elapsedTime.Milliseconds;
floatTimeSpan = (float)seconds + ((float)milliseconds / 1000);
Console.WriteLine("Time Span: {0}", floatTimeSpan);
程序输出如下所示:
Time Span: 0.012
答案 3 :(得分:0)
internal static string TimeSpanToDouble(TimeSpan timeSpan, string unit)
{
double result = 0;
if (unit.Equals("MINUTES"))
result = timeSpan.TotalMinutes;
else if (unit.Equals("HOURS"))
result = timeSpan.TotalHours;
else if (unit.Equals("DAYS"))
result = timeSpan.TotalHours / 24;
else
throw new Exception();
return Convert.ToString(result);
}
答案 4 :(得分:0)
您可以使用Convert.ToSingle
,如下所示:
var ts = new Timespan(0, 1, 1, 30);
var minutes = Convert.ToSingle(ts.TotalMinutes);
var hours = Convert.ToSingle(ts.TotalHours);
结果minutes
和hours
将分别为61.5
和1.025
查看此dotnetfiddle:https://dotnetfiddle.net/uSQfk0
答案 5 :(得分:0)
double TsToHoursDouble(TimeSpan ts) => ts.TotalMinutes / 60;
double TsToMinsDouble(TimeSpan ts) => ts.TotalMinutes;
使用:
var hrs = TsToHoursDouble(someTimeSpan);
如果您需要更准确的结果,可以在此类计算中使用TotalSeconds