如何在 C# 中将TimeSpan
值转换为 a ?double
我的意思是我有这个-08:15:00
,我想要一个 double -08.15
。
尽管这个问题有多么模棱两可,但为了将来参考,Umar 可能是最接近回答这个问题的人,因为它显示在标题中。
double
要从对象中获取 a TimeSpan
,您需要选择最重要的测量值,并获得总数。作为Total<x>
属性,将返回适当的完整值,并将该值的分数作为小数。
所以,如果你想要8:15:00
, 到 a double
- 和"8"
代表Hours
,那么你会想要TimeSpan.TotalHours
得到 8.25 的值。
如果是"8"
代表Minutes
,那么再次,您将使用适当的属性TimeSpan.TotalMinutes
来获得相同的结果,依此类推。
您可以使用TimeSpan.TotalMinutes
(获取当前TimeSpan
结构的值,以整数和小数分钟表示) 或其他类似属性。
不要在家里重复这个!
double value = (timeSpan.Hours + timeSpan.Minutes / 100.0 + timeSpan.Seconds / 10000.0) * (timeSpan > TimeSpan.Zero ? 1 : -1);
DateTime
在使用 获得其double
格式的操作的情况下.ToOADate()
,TimeSpan
必须直接转换为double
with,.TotalDays
因为单位 (1.0)DateTime
是一天。
具有功能性思维:
public static class Extension
{
public static double ToDouble(this TimeSpan o) => o.TotalDays;
}
您可以使用 string.format,然后像这样解析它:
double.Parse(string.Format("-HH.mm"))