C# 如何将计时器时间从秒转换为分钟,并显示分钟:秒?

C# 如何将计时器时间从秒转换为分钟,并显示分钟:秒?,c#,C#,现在它只以秒的形式倒数,如8..7..6..5..等。计时器1的间隔设置为1000毫秒 我希望,如果用户将numericupdown1更改为9,那么它会像现在一样倒数秒,将秒数计为分钟,并显示为:01(分钟):10(秒) 这是Timer1\u Tick事件的代码: private void timer1_Tick(object sender, EventArgs e) { try { numbers

现在它只以秒的形式倒数,如8..7..6..5..等。计时器1的间隔设置为1000毫秒 我希望,如果用户将numericupdown1更改为9,那么它会像现在一样倒数秒,将秒数计为分钟,并显示为:01(分钟):10(秒)

这是Timer1\u Tick事件的代码:

private void timer1_Tick(object sender, EventArgs e)
        {

            try
            {
                numbers_radar = Convert.ToInt64(numericUpDown1.Value);
                numbers_satellite = Convert.ToInt64(numericUpDown2.Value);
                if (numbers_radar <= 0 || numbers_satellite <= 0)
                {
                    timer1.Stop();
                    button1.Enabled = true;
                    numericUpDown1.Enabled = true;
                    numericUpDown2.Enabled = true;
                    MessageBox.Show("Value cannot be zero or below zero");
                    numericUpDown1.Text = "";
                    numericUpDown2.Text = "";
                }
                else
                {
                    Numbers_Timer_radar = Numbers_Timer_radar + 1;
                    Numbers_Timer_satellite = Numbers_Timer_satellite + 1;

                    if (Numbers_Timer_radar >= numbers_radar) 
                    {
                        try
                        {
                            filesdownload();
                            number_of_files_in_current_directory = Directory.GetFiles(sf, "radar*.png");
                            label13.Text = "Current Number Of Files In The Selected Directory Are: " + number_of_files_in_current_directory.Length;
                            button1.Enabled = false;
                            Numbers_Timer_radar = 0;
                        }
                        catch (Exception Local_Timer1_Exceptions)
                        {
                            Logger.Write("Timer1 Errors : " + Local_Timer1_Exceptions);
                        }
                    }
                    if (Numbers_Timer_satellite >= numbers_satellite)
                    {
                        satellite_downloads();
                        number_of_satellite_files_in_current_directory = Directory.GetFiles(satellite_dir, "satellite*.png");
                        label8.Text = "Current Number Of Files In The Selected Directory Are: " + number_of_satellite_files_in_current_directory.Length;
                        button1.Enabled = false;
                        Numbers_Timer_satellite = 0;
                    }
                    time_left_radar = numbers_radar - Numbers_Timer_radar;
                    time_left_satellite = numbers_satellite - Numbers_Timer_satellite;
                    //string t = GetTime((int)time_left_radar);
                    label21.Text = time_left_radar.ToString();
                    label22.Text = time_left_satellite.ToString();
                    label1.Text = "Next image radar will be download in: ";
                    label5.Text = "Next image satellite will be download in: ";
                }

            }
            catch (Exception General_Exceptions)
            {
                Logger.Write("Show if numbers have wrong string input" + numbers_radar);
                Logger.Write("Show if numbers have wrong string input" + numbers_satellite);
                timer1.Stop();
                Logger.Write("Exception: " + General_Exceptions + Environment.NewLine);
                //numericUpDown1.Clear();
                //numericUpDown2.Clear();
                button1.Enabled = true;
                numericUpDown1.Enabled = true;
                numericUpDown2.Enabled = true;
                Numbers_Timer_radar = 0;
                Numbers_Timer_satellite = 0;
            }

        }

感谢您的帮助。

尝试使用
TimeSpan
对象-它们非常棒,您可以调用myTimeSpan.Minutes等,以方便访问(无需手动计算)。Henk我所说的“it didnt work”是指我不知道在timer\u tick事件中正确地执行和使用GetTime。我试过了,但我得到的最好结果是:00:00:08,最后一个08以秒计,比如:08..07..06..05等等,分钟数从未更新过。我想看到的是:00:01:08。。。00:01:07... 等等
public string GetTime(int Time)
        {
            //Seconds 
            Sec = Time % 60;

            //Minutes 
            Min = ((Time - Sec) / 60) % 60;

            //Hours 
            Hrs = ((Time - (Sec + (Min * 60))) / 3600) % 60;

            return Hrs.ToString("00") + ":" +
                   Min.ToString("00") + ":" +
                   Sec.ToString("00");
        }