0

私は変数を持っています:string currentTime in the constructor:

currentTime = DateTime.Now.ToString("HH:mm:ss tt");

And in the event Form1_FormClosing i have:

currentTimeClosed = DateTime.Now.ToString("HH:mm:ss tt");

Now i want to calculate the diffrenece between the two strings times and get the time the user used something like currenttimeClosed - currentTime = 10 minutes and 10 seconds So i know the user used the program 10 minutes and 10 seconds.

How can i do it ?

4

4 に答える 4

0

日付と時刻を文字列として保存しないでください。代わりに、次のDateTimeタイプを使用します。

次のように、コンストラクターで変数を宣言します。

DateTime currentTime;

次に、プログラムの起動時に次のように日付と時刻を割り当てることができます。

currentTime = DateTime.Now;

実行時間が必要なときはいつでも、次のように計算します。

TimeSpan runningTime = DateTime.Now - currentTime;

TimeSpanドキュメントを参照してください。TimeSpanプログラムが実行されている時間を調べるためのさまざまなプロパティを提供します。

于 2012-06-13T21:00:05.437 に答える
0

DateTime値をsとして格納し、計算を行います。これによりTimeSpan、目的の結果が含まれる が生成されます。

于 2012-06-13T21:00:44.000 に答える
0

まず、文字列を保存する必要はありませんDateTime。直接保存するだけです。

2 つを減算してTimeSpan、違いを伝え、その値を出力することができます。

// fields
DateTime currentTime;
DateTime currentTimeClosed;

// Somewhere in constructor
currentTime = DateTime.Now;

// in Form1_FormClosing
currentTimeClosed = DateTime.Now;

var difference = currentTimeClosed  - currentTime;

Console.Write(string.Format("{0} minutes and {1} seconds", 
                            (int)difference.TotalMinutes, 
                            difference.Seconds));
于 2012-06-13T21:00:59.000 に答える
0

私は実際に使用しStopWatchます。それを作成してメンバー変数に格納し、Start()コンストラクターでメソッドを呼び出します。次に、 でStop()メソッドを呼び出しますForm1_UnloadEllapsedまたはを使用して、プログラムの使用率を尋ねることができますElapsedMillis

于 2012-06-13T21:02:27.640 に答える