特定日期后,以Xamarin形式停止倒数计时器

时间:2018-11-21 05:03:02

标签: c# xamarin countdowntimer

我是C#的新手,需要一个倒数计时器。我使用此代码进行了少量修改。

Link

原始代码。...

DateTime endTime = new DateTime(2018,12,31,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'");
}

我的代码。...

    DateTime endTime = new DateTime(2018,12,31,0,0,0);
    private void countDownTimer()
    {
        Timer t = new Timer();
        t.Interval = 1000;
        t.Elapsed += new ElapsedEventHandler(t_Tick);
        TimeSpan ts = endTime.Subtract(DateTime.Now);
        cTimer = 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);
        cTimer = ts.ToString("d' Days 'h' Hours 'm' Minutes 's' Seconds'");
    }

这很好用,我想知道在倒计时后如何停止计时器。现在,它在倒数日期之后开始计数。

1 个答案:

答案 0 :(得分:1)

您可以这样停止它:

DateTime endTime = new DateTime(2018, 11, 21, 12, 31, 0);
public void StartCountDownTimer()
{
   timer = new System.Timers.Timer();
   timer.Interval = 1000;
   timer.Elapsed += t_Tick;
   TimeSpan ts = endTime - DateTime.Now;
   cTimer = ts.ToString("d' Days 'h' Hours 'm' Minutes 's' Seconds'");
   timer.Start();
}
string cTimer;
System.Timers.Timer timer;
void t_Tick(object sender, EventArgs e)
{
   TimeSpan ts = endTime - DateTime.Now;
   cTimer = ts.ToString("d' Days 'h' Hours 'm' Minutes 's' Seconds'");
   if ((ts.TotalMilliseconds < 0) || (ts.TotalMilliseconds < 1000))
   {
      timer.Stop();
   }
}