如何在 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必须直接转换为doublewith,.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"))