6

1秒ごとにカウントアップし、intに1を追加するカウンターがあります。

質問
カウンターが次のようになるように文字列をフォーマットするにはどうすればよいですか。

00:01:23

それ以外の:

123

試したこと これまでに試し
たこと:

for (int i = 0; i < 1; i++)
        {
            _Counter += 1;
            labelUpTime.Text = _Counter.ToString();
        }

私のタイマーの間隔は1000に設定されています(したがって、毎秒1が追加されます)。
string.Format("") について何か読んだことがありますが、それが適用できるかどうかはわかりません。
あなたがこれについて私を導くことができればありがとう:D!

4

6 に答える 6

6

TimeSpan を使用します。

_Counter += 1;
labelUpTime.Text = TimeSpan.FromSeconds(_Counter).ToString();
于 2012-04-04T12:52:08.757 に答える
2

あなたはそれを作ることができますTimeSpan(それはそれが時間のスパンです)、それをフォーマットします:

labelUpTime.Text = TimeSpan.FromSeconds(_Counter).ToString();
于 2012-04-04T12:50:14.150 に答える
1

カウンターを使用しないでください。タイマーが毎秒正確に起動することに依存しないでください。それはしません。このようなことをしてください。

class TimerTest
{
    private DateTime _start = DateTime.Now;
    private Timer _timer = new Timer(1000);

    public TimerTest()
    {
        // (DateTime.Now - _start) returns a TimeSpan object
        // Default TimeSpan.ToString() returns 00:00:00
        _timer.Elapsed = (o, e) => labelUpTime.Text = (DateTime.Now - _start).ToString();
    }
}

TimeSpan.ToStringメソッドでフォーマットを調整できます。

于 2012-04-04T12:51:55.607 に答える
0

タイムスパンを使用します。2 番目の用途を追加するには

mytimespan.Add(new TimespanFromSeconds(1));
Console.WriteLine(mytimespan);    //Output in the form of xx:xx:xx

http://www.dotnetperls.com/timespan

于 2012-04-04T12:54:45.550 に答える
0
TimeSpan timer = new TimeSpan(0);

そしてあなたの間隔で:

timer += TimeSpan.FromSeconds(1);
于 2012-04-04T12:51:21.453 に答える