DateTime + Timer Tick?

本文关键字:Tick Timer DateTime | 更新日期: 2023-09-27 18:10:11

我想,当我点击一个按钮,开始一个"经过的时间"。我写了这么多:

private void timer_Tick(object sender, EventArgs e)
{
    timeCounter++;
    labelTimer.Text = "Elapsed Time: " + timeCounter.ToString();
}

timer间隔为1000(1秒)。

我想要的是像这样格式化时间:

HH:MM:SS

和自动增加分钟当秒达到60,依此类推小时。我是否应该使用DateTime并每1秒添加一秒?

DateTime + Timer Tick?

您可以使用TimeSpan:

TimeSpan _elapsed = new TimeSpan();
private void timer_Tick(object sender, EventArgs e)
{
    _elapsed = _elapsed.Add(TimeSpan.FromMinutes(1));
    labelTimer.Text = "Elapsed Time: " + _elapsed.ToString();
}

您可以使用秒表和它的运行时间来创建日期时间(并设置它的格式为您喜欢)。

Stopwatch s = Stopwatch.StartNew();
//Some more operations here...
s.Stop();
DateTime t = new DateTime(s.ElapsedTicks);

如果你愿意,你也可以设置秒表的频率,以尽量减少资源消耗。

你可以这样简单地使用:

private void timer_Tick(object sender, EventArgs e) 
{
       Stopwatch stopWatch = Stopwatch.StartNew();
       // Your logics goes Here
       stopWatch.Stop();
       DateTime time = new DateTime(stopWatch.ElapsedTicks);
       labelTimer.Text = time.ToString("HH:mm:ss");
}