寻找时间百分比的有效方法

本文关键字:有效 方法 百分比 时间 寻找 | 更新日期: 2023-09-27 18:05:51

当两种数据类型都是TimeSpan时,是否存在一种有效的方法来计算X来自Y的百分比?

例如,一个基本的问题是1:00:002:00:00的50%。计算00:34:234:12:31的百分比的有效方法是什么?

寻找时间百分比的有效方法

编辑:根据评论,类型确实打算是TimeSpan而不是DateTime,在这一点上一切都很简单。

当你问X占Y的比例时,这基本上是除法,这在TimeSpan上很容易实现:

public static double Divide(TimeSpan dividend, TimeSpan divisor)
{
    return (double) dividend.Ticks / (double) divisor.Ticks;
}

示例代码:

using System;
using System.IO;
using System.Globalization;
using System.Linq;
class Test
{
    static void Main()
    {
        TimeSpan x = new TimeSpan(0, 34, 23);
        TimeSpan y = new TimeSpan(4, 12, 31);
        Console.WriteLine(Divide(x, y)); // 0.13616 etc, i.e. 13%
    }
    public static double Divide(TimeSpan dividend, TimeSpan divisor)
    {
        return (double) dividend.Ticks / (double) divisor.Ticks;
    }
}

使用日期时间。蜱虫的财产。您可以通过将DateTime Ticks彼此相减并相除来找到百分比。这是最准确的方法。

如果你只是使用一个时间,使用TimeSpan对象而不是DateTime对象。

时间以单位计量,任何时间都可以转换为该单位的数字,然后作为任何其他数字处理。创建一个TimeSpanTotalSeconds,然后做数学。