【问题标题】:Creating countdown to date C#创建倒计时日期 C#
【发布时间】:2012-06-24 04:27:58
【问题描述】:

我想制作一个仅显示计时器的 Windows 窗体应用程序:

xx 天 xx小时 xx分钟 xx秒

  • 没有设置计时器或任何东西的选项,我想在代码中这样做 但是,问题是我希望它从当前时间倒计时(DateTime.Now) 到特定日期。所以我最终将剩下的时间设置为 TimeSpan 类型。我现在怀疑如何实际显示它,所以它实际上正在工作,并且正在更新(倒计时) 似乎找不到对我有帮助的教程,所以我希望我能在这里得到一些帮助:)

【问题讨论】:

  • “如何实际显示这个”的哪给你带来了问题?
  • 如果您更喜欢使用DateTime 而不是TimeSpan,您可以使用new DateTime(yourTimeSpan.Ticks) 来找回。但听起来TimeSpan 在您的情况下实际上可能更容易使用,因为它具有您表单中每个天、小时、分钟和秒标签的属性。

标签: c# datetime timer timespan


【解决方案1】:

您可以使用timespan format string 和计时器:

DateTime endTime = new DateTime(2013,01,01,0,0,0);
private void button1_Click(object sender, EventArgs e)
{ 
    Timer t = new Timer();
    t.Interval = 500;
    t.Tick +=new EventHandler(t_Tick);
    TimeSpan ts = endTime.Subtract(DateTime.Now);
    label1.Text = ts.ToString("d' Days 'h' Hours 'm' Minutes 's' Seconds'");
    t.Start();
}

void  t_Tick(object sender, EventArgs e)
{
    TimeSpan ts = endTime.Subtract(DateTime.Now);
    label1.Text = ts.ToString("d' Days 'h' Hours 'm' Minutes 's' Seconds'");
}

【讨论】:

    【解决方案2】:

    以下将为您提供倒计时字符串

    //Get these values however you like.
    DateTime daysLeft = DateTime.Parse("1/1/2012 12:00:01 AM");
    DateTime startDate = DateTime.Now;
    
    //Calculate countdown timer.
    TimeSpan t = daysLeft - startDate;
    string countDown = string.Format("{0} Days, {1} Hours, {2} Minutes, {3} Seconds til launch.", t.Days, t.Hours, t.Minutes, t.Seconds);
    

    【讨论】:

      【解决方案3】:

      您应该能够在谷歌上搜索类似的内容并获得数百个结果。 http://channel9.msdn.com/coding4fun/articles/Countdown-to,这是第一个看起来不错的。

      【讨论】:

        【解决方案4】:

        使用 ToDate.Subtract(Now) 然后您所要做的就是格式化您获得的 TimeSpan 并将其显示在表单上。

        【讨论】:

        • TimeSpan 的最大值为 Int32.Max,仅适用于“短时间延迟”。如果 ToDate 和 Now 之间的差异超过 24 小时 - 它不起作用。
        猜你喜欢
        • 2020-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-15
        相关资源
        最近更新 更多