显示";“剩余时间”;从设定的日期到现在

本文关键字:日期 剩余时间 quot 余时间 时间 显示 | 更新日期: 2023-09-27 18:21:14

我有一个应用程序,当某个操作发生时,使用Visual studion配置管理器将确切的DATE/TIME写为myTime,您可以在其中添加设置。

这是我的设置:属性。设置。默认值。voteTime

我希望一旦我的应用程序开始显示标签,将显示"X时间,直到下一次投票请求"

在我看来,投票必须每12小时进行一次,因此

我想让标签基本上显示这12个人还有多少时间小时,从我上面提到的投票时间开始。

我尝试过很多技术,但我是C#的新手,没有人为我工作,每次标签要么有他的默认文本,要么是空白的。。。

        DateTime voteTime = Properties.Settings.Default.voteTime;
        DateTime startDate = DateTime.Now;
        //Calculate countdown timer.
        TimeSpan t = voteTime - startDate;
        string countDown = string.Format("{0} Days, {1} Hours, {2} Minutes, {3} Seconds til launch.", t.Days, t.Hours, t.Minutes, t.Seconds);

在上面,这就是我尝试的,然后我写了label1.text=countDown

提前谢谢。

显示";“剩余时间”;从设定的日期到现在

如何操作:

您可以使用System.Windows.Forms.Timer类继续显示您的剩余时间。您可以通过以下步骤完成:

创建并初始化计时器:

Timer timer1 = new Timer();

创建其tick事件方法并设置更新显示时间的间隔:

timer1.Tick += timer1_Tick;
timer1.Interval = 1000; //i am setting it for one second

现在启动计时器:

timer1.Enabled = true;
timer1.Start();

创建timer.tick事件方法并每秒更新标签:

void timer1_Tick(object sender, EventArgs e)
{
    TimeSpan TimeRemaining = VoteTime - DateTime.Now;
    label1.Text = TimeRemaining.Hours + " : " + TimeRemaining.Minutes + " : " + TimeRemaining.Seconds;
}

完整代码:

这是完整的代码。你可以直接复制粘贴:

using System;
using System.Windows.Forms;
namespace WindowsFormsApplication
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            timer1.Tick += timer1_Tick;
            timer1.Interval = 1000;
            timer1.Enabled = true;
            timer1.Start();
        }
        Timer timer1 = new Timer();
        void timer1_Tick(object sender, EventArgs e)
        {
            TimeSpan TimeRemaining = VoteTime - DateTime.Now;
            label1.Text = TimeRemaining.Hours + " : " + TimeRemaining.Minutes + " : " + TimeRemaining.Seconds;
        }

这里有一个简单的方法,使用计时器控件,每分钟更新一次标签:

    TimeSpan TimeLeft = new TimeSpan();
    DateTime voteTime = Properties.Settings.Default.voteTime;      
    public Form3()
    {
        InitializeComponent();
        TimeLeft = voteTime - DateTime.Now;
        label1.Text = TimeLeft.ToString(@"hh':mm") + " til launch.";
        //This value is in milliseconds.  Adjust this for a different time 
        //interval between updates
        timer1.Interval = 60000;
        timer1.Start();
    }
    private void timer1_Tick(object sender, EventArgs e)
    {
        TimeLeft = voteTime - DateTime.Now;
        label1.Text = TimeLeft.ToString(@"hh':mm") + " til launch.";
    }