1

フライトの出発日と到着日と飛行時間を表示するアプリケーションがあります。

Flight Time Duration の場合、日付を差し引くだけで TimeStamp のようになります

TimeStamp duration = arrivalDate.subtract(departureDate);

だからレコードは

               Departure          Arrival                   Duration
               Sat 07:05A         Sat 09:20A                2h 15m
               Sat 10:10A         Sat 11:15A                1h 05m
               Sat 05:15P         Sat 07:16P                2h 01m
Total Duration                                              5h 21m

私はそのような飛行記録をたくさん持っており、Total Flight Duration を表示する必要があります。

TimeStamp totalDuration = totalDuration.Add(duration);

しかし、totalDuration が {1.02:10:00} のような値に達し、この値を DateTime に変換しようとすると、このような状況が発生しました

TotalConnectionTime = new DateTime(2012,06, 30,(int)totalDuration.TotalHours, totalDuration.Minutes, 0);

それはエラーを与える

「時、分、および秒のパラメーターは、表現できない DateTime を表しています。」

(int)totalDuration.TotalHours = 26 これにより問題が発生します

{1.02:10:00} から 26 時間 10 分に変換する必要があります。つまり、1 日 = 24 時間 + 2 時間 + 10 分です。

私が私の主張を明確にすることを願っています。

助けてくれてありがとう。

4

1 に答える 1

1

アニル、

上記のコメントに基づいて、DateTimeを出発時刻(UTC)として保存してから、分を整数列として保存することをお勧めします。その後、必要に応じてオフセットを計算できます。以下は、例に基づいて、タイムスパンの使用法を示す小さなコンソールアプリです。

class Program
{
    static void Main(string[] args)
    {
        TimeSpan timeSpan = new TimeSpan(0,1570,0);
        var stringDisplay = string.Format("{0}:{1}:{2}", timeSpan.Days, timeSpan.Hours, timeSpan.Minutes);
        Console.WriteLine(stringDisplay);
        Console.ReadKey();
    }
}

これにより、1:2:10(1日、2時間10分)の結果が生成されます。

これは、最初の出発時間に追加するときにうまく機能するはずです。

DateTime departure = new DateTime(2012, 6, 21, 7, 30, 0);
DateTime completeJourney = departure.Add(timeSpan);

お役に立てれば。

于 2012-06-21T10:45:16.637 に答える