繁体   English   中英

使用自定义时间的C#时钟

[英]C# Clock using Custom Time

嗨,我正在实现简单的时钟。

我的要求是我希望时钟以我设置的时间而不是系统时间执行。

我已经实现了使用计时器,但它不是同步的。

    private void button1_Click(object sender, EventArgs e)
    {
        //dtvalue = 

        dtvalue = DateTime.Parse("11:33:05");

        label1.Text = dtvalue.ToString("HH : mm : ss : fff");

        timer1.Interval = 100;
        timer1.Tick += new EventHandler(timer_Tick);
        timer1.Start();
    }

    void timer_Tick(object sender, EventArgs e)
    {
        dtvalue = dtvalue.AddMilliseconds(100);
        label1.Text = dtvalue.ToString("HH : mm : ss : fff");


    }

我希望它能与我给的时间完全一样地作为系统时钟来实现。 感谢您的提前帮助–

我强烈避免反复添加特定的时间量-计时器不会解雇准时 ,所以你最终由于该漂流。

相反,请记住系统时钟之间的差异,并在需要时添加该差异:

TimeSpan difference = ...;

void timer_Tick(object sender, EventArgs e)
{
    DateTime now = DateTime.Now; // Or UtcNow, see later
    DateTime adjusted = now + difference;
    label1.Text = adjusted.ToString("HH : mm : ss : fff");
    label2.Text = now.ToString("HH : mm : ss : fff");
}

您可能要考虑使用DateTime.UtcNow而不是DateTime.Now ,这取决于您是否希望自定义时钟在时区偏移量更改时更改值。 我们不知道您真正想要实现什么,因此很难确定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM