5

如何将 TimeSpan 转换为 float ,考虑到所有处理单位(小时分钟),例如如果(单位 = 小时)将 TimeSpan 转换为浮点小时

在另一种情况下,SQL Server 中是否没有数据类型“Timespan”?

4

6 回答 6

5

使用 上的Total*属性TimeSpan,例如TimeSpan.TotalHours

于 2013-02-14T08:55:52.477 回答
0

分钟示例:

var t = new TimeSpan();
var total = t.TotalMinutes;
于 2013-02-14T08:56:16.160 回答
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
于 2013-02-14T09:00:05.400 回答
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);
    }
于 2013-02-14T15:15:46.733 回答
0
double TsToHoursDouble(TimeSpan ts) => ts.TotalMinutes / 60;

double TsToMinsDouble(TimeSpan ts) => ts.TotalMinutes;

使用:

var hrs = TsToHoursDouble(someTimeSpan);

如果您需要更准确的结果,可以在此类计算中使用 TotalSeconds

于 2020-06-25T10:49:23.277 回答
0

您可以使用Convert.ToSingle,如下所示:

var ts = new Timespan(0, 1, 1, 30);
var minutes = Convert.ToSingle(ts.TotalMinutes);
var hours = Convert.ToSingle(ts.TotalHours);

结果minuteshours将分别61.51.025

看看这个 dotnetfiddle:https ://dotnetfiddle.net/uSQfk0

于 2016-09-13T13:35:05.413 回答