简单的倒计时器 C# 显示分钟和秒 - 已经有分钟

Unw*_*ed4 1 c# winforms countdowntimer

我有一个带有简单倒计时器的 Windows 窗体,用于向观众显示赛车比赛还剩多少时间。它适用于显示还剩多少分钟,但我需要它来显示还剩多少分钟和秒。

用户可以决定是否显示时间(作为图片框前面的标签),并且用户可以开始/停止/重置/添加或减去分钟(所有用户输入均以分钟为单位)。

如果有人能指导我如何将剩余时间格式化为 000:00(即 mmm:ss)并以秒为单位倒计时,我将不胜感激。

这是我到目前为止所拥有的:

int timeleft = 10;
private void timer1_Tick(object sender, EventArgs e)
{
    if (timeleft > 0)
    {
        timeleft = timeleft - 1;
        label3.Text = timeleft + " Mins";
    }
    else
    {
        timer1.Stop();
        label3.Text = "Time Up";
    }
}

private void button26_Click(object sender, EventArgs e)
{
    timer1.Start();
}

private void button27_Click(object sender, EventArgs e)
{
    timer1.Stop();
}

private void button32_Click(object sender, EventArgs e)
{
    timer1.Stop();
    timeleft = 20;
    label3.Text = timeleft + " Mins";
}

private void button28_Click(object sender, EventArgs e)
{
    timeleft = timeleft + 1;
    label3.Text = timeleft.ToString() + " Mins";
}

private void button30_Click(object sender, EventArgs e)
{
    timeleft = timeleft - 1;
    label3.Text = timeleft.ToString() + " Mins";
}

private void button7_Click(object sender, EventArgs e)
{
    timeleft = timeleft + 10;
    label3.Text = timeleft.ToString() + " Mins";
}

private void button29_Click(object sender, EventArgs e)
{
    label3.BringToFront();
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*asH 5

您应该使用TimeSpan来描述剩余时间。这将允许您使用自定义格式字符串来格式化时间。IE

timeleft = TimeSpan.FromMinutes(20);
label3.Text = timeLeft.ToString("mm\\:ss");
Run Code Online (Sandbox Code Playgroud)

您还可以创建一个附加的扩展方法,根据剩余时间打印分钟或秒。即如果超过一分钟,则仅显示分钟,否则显示秒。或者如果剩余时间少于 5 分钟但超过 1 分钟,则显示分钟和秒。