我将如何计算Winform中剩余的时间?

时间:2018-11-19 19:31:37

标签: c# winforms

您有任何关于如何计算剩余时间的想法, 即我们从开始倒计时 if currentTime >= TimeSpan.Parse("06:40") && currentTime <= TimeSpan.Parse("07:25") 然后我们解析当前的小时和结束的小时(在此示例中为7:25),并制作一个标签,显示还剩下多少分钟和几秒钟。 我已经尝试通过减去时间间隔和结束时间间隔来制作某些东西,但是根本没有用。

编辑:主要思想是这样的,但是我不能通过使用TimeSpan和DateTime来使它工作

string myTime;

void timer()
    {
        var endTime = DateTime.Parse(myTime);
        var beginTime = DateTime.Now.TimeOfDay;
    }

private void timer1_Tick(object sender, EventArgs e)
    {
        var endTime = DateTime.Parse(myTime);
        var beginTime = DateTime.Now.TimeOfDay;
        TimeSpan difference = endTime - beginTime;
        TimeSpan currentTime = DateTime.Now.TimeOfDay;
        if (currentTime >= TimeSpan.Parse("06:40") && currentTime <= TimeSpan.Parse("07:25"))
        {
            label5.Text = "0";
            myTime = "07:25";
            timer();
            label6.Text = difference;
        }
    }

1 个答案:

答案 0 :(得分:0)

解析时间点时,请使用DateTime而不是TimeSpan。 TimeSpan是持续时间。两个时间点(DateTime)之间的差将是持续时间(TimeSpan)。

var end = DateTime.Parse("21:00");
var now = DateTime.Now;      // Could also be some other point in time
TimeSpan timeLeft = end-now;
Console.WriteLine(timeLeft);

结果:

  

00:24:25.8581440

如果您不喜欢秒和几分之一秒,则可以使用custom format,例如

Console.WriteLine(timeLeft.ToString("hh\\:mm"));