6

如何在 C# 中将TimeSpan值转换为 a ?double

我的意思是我有这个-08:15:00,我想要一个 double -08.15

4

5 回答 5

14

尽管这个问题有多么模棱两可,但为了将来参考,Umar 可能是最接近回答这个问题的人,因为它显示在标题中。

double要从对象中获取 a TimeSpan,您需要选择最重要的测量值,并获得总数。作为Total<x>属性,将返回适当的完整值,并将该值的分数作为小数。

所以,如果你想要8:15:00, 到 a double- 和"8"代表Hours,那么你会想要TimeSpan.TotalHours得到 8.25 的值。

如果是"8"代表Minutes,那么再次,您将使用适当的属性TimeSpan.TotalMinutes来获得相同的结果,依此类推。

于 2014-09-29T09:05:22.397 回答
8

您可以使用TimeSpan.TotalMinutes(获取当前TimeSpan结构的值,以整数和小数分钟表示) 或其他类似属性

于 2013-04-27T14:00:03.910 回答
3

不要在家里重复这个!

double value = (timeSpan.Hours + timeSpan.Minutes / 100.0 + timeSpan.Seconds / 10000.0) * (timeSpan > TimeSpan.Zero ? 1 : -1);
于 2013-04-27T13:59:49.693 回答
0

DateTime在使用 获得其double格式的操作的情况下.ToOADate()TimeSpan必须直接转换为doublewith,.TotalDays因为单位 (1.0)DateTime是一天。

具有功能性思维:

public static class Extension
{
    public static double ToDouble(this TimeSpan o) => o.TotalDays;
}
于 2020-10-25T00:16:20.597 回答
-1

您可以使用 string.format,然后像这样解析它:

   double.Parse(string.Format("-HH.mm"))
于 2013-04-27T13:58:58.070 回答