8

両方のデータ型がである場合、YからXのパーセンテージを計算する効率的な方法はありますTimeSpanか?

たとえば、基本的な質問は、の1:00:0050%です2:00:00。何パーセントかを計算する効果的な方法は何でしょう00:34:234:12:31

4

3 に答える 3

13

編集:コメントによると、タイプは実際にはで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;
    }
}
于 2013-03-26T13:56:07.527 に答える
7

DateTime.Ticksプロパティを使用します。DateTimeティックを互いに減算および除算することにより、パーセンテージを見つけることができます。これが最も正確な方法です。

Timeのみを使用している場合は、DateTimeオブジェクトではなくTimeSpanオブジェクトを使用してください。

于 2013-03-26T13:52:11.577 に答える
2

時間は単位で測定され、いつでもその単位の数に変換して、他の数として処理することができます。を作成しTimeSpanて取得TotalSecondsし、計算を行います。

于 2013-03-26T13:52:14.047 に答える