当前位置: 首页 > 知识库问答 >
问题:

到特定日期的倒数计时器

华章横
2023-03-14

我试图使一个倒计时,显示总天数,小时,分钟和秒的剩余特定日期。

这就是我到目前为止所创造的。

protected override void OnCreate (Bundle bundle)
{
  base.OnCreate (bundle);


  SetContentView (Resource.Layout.Main);

  txtDays = FindViewById<TextView> (Resource.Id.txtDays);
  txtHours = FindViewById<TextView> (Resource.Id.txtHours);
  txtMins = FindViewById<TextView> (Resource.Id.txtMins);
  txtSec = FindViewById<TextView> (Resource.Id.txtSec);

  DateTime enteredDate = new DateTime(2013, 7, 25, 12 ,30 ,00);

  DateTime todaysDateTime = DateTime.Now;
  DateTime formattedDate = todaysDateTime.AddHours (2);

  TimeSpan span = enteredDate.Subtract(formattedDate);

  double totalDays = span.TotalDays;
  double totalHours = span.TotalHours;
  double totalMins = span.TotalMinutes;
  double totalSec = span.TotalSeconds;

  new Thread(new ThreadStart(() =>
                             {
    RunOnUiThread(() =>
                  {
      Console.WriteLine ("Days: " + String.Format("{0:0}", Math.Truncate(totalDays)));
      Console.WriteLine ("Hours: " + String.Format("{0:0}", Math.Truncate(totalHours)));
      Console.WriteLine ("Minutes: " + String.Format("{0:0}", Math.Truncate(totalMins)));
      Console.WriteLine ("Seconds: " + String.Format("{0:0}", Math.Truncate(totalSec)));

      txtDays.Text = String.Format ("{0:0}", Math.Truncate (totalDays));
      txtHours.Text = String.Format ("{0:0}", Math.Truncate (totalHours));
      txtMins.Text = String.Format ("{0:0}", Math.Truncate (totalMins));
      txtSec.Text = String.Format ("{0:0}", Math.Truncate (totalSec));

  });
  })).Start();  

}

我用过计时器,它用Console.WriteLine计数,但TextViews什么也不显示,也不更新...有人知道如何每秒钟更新TextViews吗?

timer = 0;
      new Thread(new ThreadStart(() =>
                                 {
      Thread.Sleep (1000);
        RunOnUiThread(() =>
                      {
      tmr.Elapsed += new System.Timers.ElapsedEventHandler(tmr_Elapsed);
      tmr.Start();
      while (timer < totalSec) ;
      tmr.Stop();

        });
      })).Start(); 

void tmr_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
    {
      txtDays = FindViewById<TextView> (Resource.Id.txtDays);
      txtHours = FindViewById<TextView> (Resource.Id.txtHours);
      txtMins = FindViewById<TextView> (Resource.Id.txtMins);
      txtSec = FindViewById<TextView> (Resource.Id.txtSec);

      DateTime enteredDate = new DateTime(2013, 7, 25, 12 ,30 ,00);

      DateTime todaysDateTime = DateTime.Now;
      DateTime formattedDate = todaysDateTime.AddHours (2);

      TimeSpan span = enteredDate.Subtract(formattedDate);

      totalDays = span.TotalDays;
      totalHours = span.TotalHours;
      totalMins = span.TotalMinutes;
      totalSec = span.TotalSeconds;

      Console.WriteLine ("Days: " + String.Format("{0:0}", Math.Truncate(totalDays)));
      Console.WriteLine ("Hours: " + String.Format("{0:0}", Math.Truncate(totalHours)));
      Console.WriteLine ("Minutes: " + String.Format("{0:0}", Math.Truncate(totalMins)));
      Console.WriteLine ("Seconds: " + String.Format("{0:0}", Math.Truncate(totalSec)));

      txtDays.Text = String.Format ("{0:0}", Math.Truncate (totalDays));
      txtHours.Text = String.Format ("{0:0}", Math.Truncate (totalHours));
      txtMins.Text = String.Format ("{0:0}", Math.Truncate (totalMins));
      txtSec.Text = String.Format ("{0:0}", Math.Truncate (totalSec));

    }

共有1个答案

云宏儒
2023-03-14

在C#中,使用Timer类并将其设置为1秒。

 类似资料:
  • 我试图实现一个'日期'倒计时计时器使用Android类和Java从当前的一天,小时,分钟,秒到26十二月,2013 9:00 AM倒计时。下面是我的代码: 这里是我的类: 现在时、分、秒都没问题。只是天数来了40。现在我把日期定在这个月的26号,2013年。所以目前26 - 16 = 10天。这应该是显示的天数。那为什么显示40?请帮忙。谢谢大家。

  • 我正在尝试实现一个倒计时计时器,它将使用一个特定的日期和时间开始。从那里,我需要它从1小时倒计时,然后更新最初的日期和时间,增加一个小时,然后无限期地重复自己。 这是用于一个产品拍卖,将得到一个新的产品,一旦一个售完,价格下降每小时从它添加到拍卖,可能是一天中的任何时间。 示例: 我需要这个计时器在2014,7,25,11,30,0,0开始(2014年8月25日美国东部时间上午11:30),它将倒

  • 我正试着从一个特定的日期开始做一个计数计时器。我使用了这个(http://tutorialzine.com/2012/09/count-up-jquery/)教程来做,但我不知道在哪里放进去: $('#countdown').countup({start:new Date(2012,10,27,15,58,21)//年,月,日,小时,分钟,秒}); 就像描述中说的。 代码的开头看起来是这样的:

  • 问题内容: 在游戏中,输出一个随机数(loadG1)并显示4秒钟。一旦四秒钟结束,它就会消失,用户必须输入其值才能获得分数。一旦用户按下Enter键,他们的输入框就会消失,程序必须等待直到更长的CountDownTimer(当前为18秒)结束才可以看到他们的分数。到目前为止,他们只能得分1分。我想发生的是,一旦输入答案(无论是否正确),就重复4秒倒数计时器的内容。虽然,我希望在再次启动倒数计时器时

  • 我需要计算从今天或实际日期/时间到00:00小时的特定结束日期之间的剩余时间。