如何将 TimeSpan 转换为 float ,考虑到所有处理单位(小时分钟),例如如果(单位 = 小时)将 TimeSpan 转换为浮点小时
在另一种情况下,SQL Server 中是否没有数据类型“Timespan”?
如何将 TimeSpan 转换为 float ,考虑到所有处理单位(小时分钟),例如如果(单位 = 小时)将 TimeSpan 转换为浮点小时
在另一种情况下,SQL Server 中是否没有数据类型“Timespan”?
使用 上的Total*
属性TimeSpan
,例如TimeSpan.TotalHours
。
分钟示例:
var t = new TimeSpan();
var total = t.TotalMinutes;
你可以做这样的事情
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
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);
}
double TsToHoursDouble(TimeSpan ts) => ts.TotalMinutes / 60;
double TsToMinsDouble(TimeSpan ts) => ts.TotalMinutes;
使用:
var hrs = TsToHoursDouble(someTimeSpan);
如果您需要更准确的结果,可以在此类计算中使用 TotalSeconds
您可以使用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