将TimeSpan转换为浮动

时间:2013-02-14 08:53:30

标签: c# asp.net sql-server-2008

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

在另一个上下文中,SQL Server中是否没有数据类型“Timespan”?

6 个答案:

答案 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);

结果minuteshours将分别为61.51.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