3

指定された到着時間と移動時間から打ち上げ時間を計算する必要があります。DateTime を調べましたが、どうすればよいかよくわかりません。以下の形式で到着日時を取得するために monthCalander を使用しています。

Example:

Arrival_time = 20/03/2013 09:00:00
Travel_time = 00:30:00

Launch_time = Arrival_time - Travel_time

Launch_time should equal: 20/03/2013 08:30:00

誰かがこれを達成する簡単な方法を教えてください。どうもありがとう。

4

2 に答える 2

5

TimeSpanを使用する:

DateTime arrivalTime = new DateTime(2013, 03, 20, 09, 00, 00);
// Or perhaps: DateTime arrivalTime = monthCalendar.SelectionStart;

TimeSpan travelTime = TimeSpan.FromMinutes(30);
DateTime launchTime = arrivalTime - travelTime;

何らかの理由MonthCalendar.SelectionStartでDateTimeを取得するために使用できず、使用可能な文字列しかない場合は、次のように(その特定の形式で)DateTimeに解析できます。

string textArrivalTime = "20/03/2013 09:00:00";
string dateTimeFormat = "dd/MM/yyyy HH:mm:ss";

DateTime arrivalTime = DateTime.ParseExact(textArrivalTime, dateTimeFormat, CultureInfo.InvariantCulture);
于 2013-03-17T19:44:24.820 に答える
2

DateTime オブジェクトとタイムスパンを組み合わせて使用​​します。これを示すために、小さなコンソール アプリをモックアップしました。

using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Title = "Datetime checker";
            Console.Write("Enter the date and time to launch from: ");
            DateTime time1 = DateTime.Parse(Console.ReadLine());
            Console.WriteLine();
            Console.Write("Enter the time to take off: ");
            TimeSpan time2 = TimeSpan.Parse(Console.ReadLine());
            DateTime launch = time1.Subtract(time2);
            Console.WriteLine("The launch time is: {0}", launch.ToString());
            Console.ReadLine();
        }
    }
}

入力例を使用して実行し、期待される出力を得ました。これはニーズに応えるはずです。

これが、ローンチに間に合うようにあなたをスピードアップするのに役立つことを願っています:)

于 2013-03-17T19:53:39.537 に答える