using System.Windows.Forms;namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        int time = 360;
        public Form1()
        {
            InitializeComponent();
            label1.Text = "00:00:00";
        }        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Interval = 1000;
            timer1.Enabled = !timer1.Enabled;
        }        private void timer1_Tick(object sender, EventArgs e)
        {
            time--;
            int h = time / 3600;
            int m = time / 60;
            int s = time % 60;
           
            label1.Text = string.Format("{0}:{1}:{2}",h.ToString(),m.ToString(),s.ToString());        }
    }
}这是运行后label1.Text是    
 0:5:47;但是把time的值给该大点,比如time值是 323360;
运行后label1.Text是    
 89:5389:59;倒记时到是实现了,可是标准的格式应该是 00:00:00  吧 - -!
这是不是应该加个if判断,
我试了好多办法。就是不行- -! 郁闷咯

解决方案 »

  1.   

    同志!在timer控件中时间是毫秒!不是秒!
                int h = time / 3600;
                int m = time / 60;
                int s = time % 60;
    这个地方你用的是秒把!错了!
    改下就好了!
      

  2.   

    string hour = (time / 3600).ToString().PadLeft(2, '0'); 
    string minute = ((time % 3600) / 60).ToString().PadLeft(2, '0'); 
    string second = ((time % 3600) % 60).ToString().PadLeft(2, '0'); 
    label1.Text = string.Format("{0}:{1}:{2}",hour.ToString(),minute.ToString(),second.ToString());
      

  3.   


    我改过秒了,不是问的这个问题
    timer1.Interval = 1000;
      

  4.   

    搂主这里:timer1.Interval = 1000;已经是1s啦,是对的所以就按上面代码来就行了
      

  5.   

    TimeSpan ts = new TimeSpan(323360);
    h = ts.Hours;
    m = ts.Minutes;
    s = ts.Seconds;
    用TimeSpan();具体属性好象不对,看看帮助就行了.
      

  6.   

        十分感谢。。再麻烦你一下,
    能说下PadLeft();的作用吗?
      

  7.   

    int h = time / 3600;
    int m = time / 60;
    int s = time % 60;
    你这个算法有问题吧.
    应该是.
    m = time/60  - h*60 
      

  8.   

     public partial class Form1 : Form
        {
            int time = 323360;        public Form1()
            {
                InitializeComponent();
                label1.Text = "00:00:00";        }        private void button1_Click(object sender, EventArgs e)
            {
                timer1.Interval = 1000;
                timer1.Enabled = !timer1.Enabled;        }        private void timer1_Tick(object sender, EventArgs e)
            {
                time--;
                int h = time / 3600;
                int m = (time-h*3600) / 60;
                int s = time % 60;
                string hour=h.ToString();
                string minute=m.ToString();
                string second=s.ToString();
                if (hour.Length ==1)
                {
                    hour = "0" + h.ToString();
                }
                if(minute.Length==1)
                {
                    minute ="0" + m.ToString();
                }
                if (second.Length== 1)
                {
                second  =  "0" + s.ToString(); 
                }
                label1.Text = string.Format("{0}:{1}:{2}", hour, minute, second);        }
        }
      

  9.   

    最简单的思路的解决办法:
    public partial class Form1 : Form
        {
            int time = 323360;        public Form1()
            {
                InitializeComponent();
                label1.Text = "00:00:00";        }        private void button1_Click(object sender, EventArgs e)
            {
                timer1.Interval = 1000;
                timer1.Enabled = !timer1.Enabled;        }        private void timer1_Tick(object sender, EventArgs e)
            {
                time--;
                int h = time / 3600;
                int m = (time-h*3600) / 60;
                int s = time % 60;
                string hour=h.ToString();
                string minute=m.ToString();
                string second=s.ToString();
                if (hour.Length ==1)
                {
                    hour = "0" + h.ToString();
                }
                if(minute.Length==1)
                {
                    minute ="0" + m.ToString();
                }
                if (second.Length== 1)
                {
                second  =  "0" + s.ToString(); 
                }
                label1.Text = string.Format("{0}:{1}:{2}", hour, minute, second);        }
        }
      

  10.   

    根据5楼的回复修改了一下代码:现在更完美了!
      public partial class Form1 : Form
        {
            int time = 323360;        public Form1()
            {
                InitializeComponent();
                label1.Text = "00:00:00";        }        private void button1_Click(object sender, EventArgs e)
            {
                timer1.Interval = 1000;
                timer1.Enabled = !timer1.Enabled;        }        private void timer1_Tick(object sender, EventArgs e)
            {
                time--;
                int h = time / 3600;
                int m = (time-h*3600) / 60;
                int s = time % 60;
                label1.Text = string.Format("{0}:{1}:{2}", h.ToString().PadLeft(2, '0'), m.ToString().PadLeft(2, '0'), s.ToString().PadLeft(2, '0'));        }
        }
      

  11.   

    PadLeft(2, '0');
    右对齐此实例中的字符,在左边用空格填充以达到指定的总长度。