6

在我的界面中,我让用户输入他们可以暂停操作的 X 分钟数。

如何将其转换为小时、分钟和秒?

我需要它来更新倒计时标签以向用户显示剩余时间。

4

3 回答 3

56

首先创建 TimeSpan,然后将其格式化为您想要的任何格式:

TimeSpan span = TimeSpan.FromMinutes(minutes);
string label = span.ToString(@"hh\:mm\:ss");
于 2012-07-12T20:16:16.753 回答
11

创建一个新的TimeSpan

var pauseDuration = TimeSpan.FromMinutes(minutes);

您现在有了方便的属性Hours,MinutesSeconds。我应该认为它们是不言自明的。

于 2012-07-12T20:17:16.950 回答
1

这应该给你一个开始的地方。定时器设置为 1000 毫秒。它使用与其他答案相同的想法,但更加充实。

public partial class Form1 : Form
{
    TimeSpan duration;

    public Form1()
    {
        InitializeComponent();
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
      duration  =  duration.Subtract(TimeSpan.FromSeconds(1)); //Subtract a second and reassign
      if (duration.Seconds < 0)
      {
          timer1.Stop();
          return;
      }

      lblHours.Text = duration.Hours.ToString();
      lblMinutes.Text = duration.Minutes.ToString();
      lblSeconds.Text = duration.Seconds.ToString();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        if(!(string.IsNullOrEmpty(textBox1.Text)))
        {
            int minutes;
            bool result = int.TryParse(textBox1.Text, out minutes);
            if (result)
            {
                duration = TimeSpan.FromMinutes(minutes);
                timer1.Start();
            }
        }

    }
}
于 2012-07-12T20:47:10.030 回答