如何创建倒数计时器
how to create a countdown timer
我想创建一个 56 小时的倒计时计时器,它将在我的 app.It 上动态显示倒计时,并且在重新启动之间也应该保持不变,即如果在重新启动之前我的计时器显示 3 小时过去了,那么在重新启动之后它应该从 3 小时开始继续,而不是重置。我使用这种方法将当前日期 + 56 小时写入文本文件,然后将其用作参考,但问题是 "label6" 上显示的倒计时没有进行超过 24 小时(我希望它显示倒计时形式 56:00:00 然后到 00:00:00)如果有任何其他方法可以做到这一点,请分享..谢谢
我的代码:
public void timer()
{
string path1 = userdir + username + app + file;
string triggerfile = path1;
if (!File.Exists(triggerfile))
{
string ss = (DateTime.Now.AddHours(56).ToString());
System.IO.File.WriteAllText(triggerfile, ss);
}
using (StreamReader sr = File.OpenText(triggerfile))
{
triggerdate = DateTime.Parse(sr.ReadToEnd());
}
var st = triggerdate;
var timer = (new Timer() { Interval = 1000 });
timer.Tick += (obj, args) => label6.Text = (TimeSpan.FromSeconds(20) - (st - DateTime.Now)).ToString("hh\:mm\:ss");
timer.Enabled = true;
if (DateTime.Now >= triggerdate)
{
label17.Text = "Times up";
MessageBox.Show("YOU ARE PAST YOUR TRIAL HOURS..");
}
}
可能是这样的:
var currentTime = (triggerdate.Subtract(DateTime.Now));
string remainingTime = "" + (currentTime.Days*24 + currentTime.Hours) + ":" + currentTime.Minutes + ":" + currentTime.Seconds);
var timer = (new Timer() { Interval = 1000 });
timer.Tick += (obj, args) => label6.Text = remainingTime;
timer.Enabled = true;
当您将日期加 56 小时时,等于加 2 天 8 小时。您必须将 DateTime 的天数转换为小时数,并将此小时数添加到 DateTime 的小时数,以获得总小时数。
希望对你有所帮助
您可以使用 TimeSpan
的 TotalHours
属性
TimeSpan remaining = ... ; // compute remaining time
string label = string.Format("{0}:{1:mm\:ss}", (int) remaining.TotalHours, remaining);
我想创建一个 56 小时的倒计时计时器,它将在我的 app.It 上动态显示倒计时,并且在重新启动之间也应该保持不变,即如果在重新启动之前我的计时器显示 3 小时过去了,那么在重新启动之后它应该从 3 小时开始继续,而不是重置。我使用这种方法将当前日期 + 56 小时写入文本文件,然后将其用作参考,但问题是 "label6" 上显示的倒计时没有进行超过 24 小时(我希望它显示倒计时形式 56:00:00 然后到 00:00:00)如果有任何其他方法可以做到这一点,请分享..谢谢
我的代码:
public void timer()
{
string path1 = userdir + username + app + file;
string triggerfile = path1;
if (!File.Exists(triggerfile))
{
string ss = (DateTime.Now.AddHours(56).ToString());
System.IO.File.WriteAllText(triggerfile, ss);
}
using (StreamReader sr = File.OpenText(triggerfile))
{
triggerdate = DateTime.Parse(sr.ReadToEnd());
}
var st = triggerdate;
var timer = (new Timer() { Interval = 1000 });
timer.Tick += (obj, args) => label6.Text = (TimeSpan.FromSeconds(20) - (st - DateTime.Now)).ToString("hh\:mm\:ss");
timer.Enabled = true;
if (DateTime.Now >= triggerdate)
{
label17.Text = "Times up";
MessageBox.Show("YOU ARE PAST YOUR TRIAL HOURS..");
}
}
可能是这样的:
var currentTime = (triggerdate.Subtract(DateTime.Now));
string remainingTime = "" + (currentTime.Days*24 + currentTime.Hours) + ":" + currentTime.Minutes + ":" + currentTime.Seconds);
var timer = (new Timer() { Interval = 1000 });
timer.Tick += (obj, args) => label6.Text = remainingTime;
timer.Enabled = true;
当您将日期加 56 小时时,等于加 2 天 8 小时。您必须将 DateTime 的天数转换为小时数,并将此小时数添加到 DateTime 的小时数,以获得总小时数。
希望对你有所帮助
您可以使用 TimeSpan
TotalHours
属性
TimeSpan remaining = ... ; // compute remaining time
string label = string.Format("{0}:{1:mm\:ss}", (int) remaining.TotalHours, remaining);