すべての処理単位 (時分) を考慮して、TimeSpan を float に変換するにはどうすればよいですか
別のコンテキストでは、SQL Server にデータ型 "Timespan" はありませんか?
すべての処理単位 (時分) を考慮して、TimeSpan を float に変換するにはどうすればよいですか
別のコンテキストでは、SQL Server にデータ型 "Timespan" はありませんか?
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 を使用できます
このようなことができます
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