You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用C#实现支持时、分、秒的倒计时计时器?

解决计时器格式显示异常问题

嘿,作为编程爱好者能自己动手实现计时器超棒的!别担心水平的问题,大家都是从踩小坑过来的😉

咱们先拆解你代码里的核心问题:你现在是把累计的i直接和"00:00:00"拼接,比如i=1的时候,结果就是"1"+"00:00:00",自然会显示100:00:00(你提到的分号大概率是输入笔误~),这完全不是我们想要的时分秒递增效果。

下面是修正后的思路和代码:

  • 把计时变量放到类的成员范围(不能放在Tick方法里,不然每次触发都会重置为0,永远不会递增);
  • 根据累计的秒数计算对应的时、分、秒;
  • 使用字符串格式化,保证每个时间部分都是两位数字(不足补0)。

修正后的代码示例:

// 把计时变量声明为类的成员变量,这样每次Tick都能累计计数
private int totalSeconds = 0;

private void timer1_Tick(object sender, EventArgs e)
{
    totalSeconds++;
    
    // 将总秒数拆分为小时、分钟、秒
    int hours = totalSeconds / 3600;
    int remainingSeconds = totalSeconds % 3600;
    int minutes = remainingSeconds / 60;
    int seconds = remainingSeconds % 60;
    
    // 格式化输出,D2表示强制显示两位数字,不足时自动补0
    textBox1.Text = string.Format("{0:D2}:{1:D2}:{2:D2}", hours, minutes, seconds);
}

另外别忘了设置timer1的Interval属性为1000(单位是毫秒,也就是1秒触发一次Tick事件),这样totalSeconds每次加1就对应实际的1秒啦。

内容的提问来源于stack exchange,提问作者Jaan Suur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:57:23