【问题标题】:Making a clock which would start running from specific time制作一个从特定时间开始运行的时钟
【发布时间】:2014-01-04 13:50:02
【问题描述】:

我正在尝试制作一个从特定时间开始运行的时钟 - 例如用户将时间设置为 17.35 并从那里运行。最简单的方法是什么?我尝试使用 Timeserial 设置时间,但不知道如何添加时间,所以它没有让我到任何地方。

想法?

edit:该程序背后的想法是向用户展示一个已加速的普通数字时钟。

【问题讨论】:

    标签: vb.net time timer clock


    【解决方案1】:

    在表单中添加标签和计时器组件并设置开始日期和时间(日期将不可见)。因此,如果您设置17:35:00,时间将从那一刻开始,并像时钟一样每秒更新一次。

    Public Class Form1
    
        Dim startTime As DateTime
    
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    
            startTime = New DateTime(2014, 1, 1, 17, 35, 0) 'setting time at 17:35:00
            Label1.Text = startTime.ToString("HH:mm:ss")
    
            Timer1.Interval = 1000 '1 tick every second
            Timer1.Start()
    
        End Sub
    
    
        Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
            startTime = startTime.AddSeconds(1)
            Label1.Text = startTime.ToString("HH:mm:ss")
        End Sub
    End Class
    

    【讨论】:

    • 第二个完全符合我的要求。非常感谢!
    【解决方案2】:

    创建一个带有计时器的表单。将计时器设置为 1000 毫秒并启用它。 暗淡三个变量小时,分钟,秒。在计时器事件上,增加秒数。当 secs = 60 时,设置 secs = 0 并增加 mins;同上分钟到小时,然后以您选择的格式显示小时:分钟:秒。添加一个按钮,允许用户输入小时、分钟、秒的起始值。 根据您所说的“加快”的含义,如果您希望计时器运行得更快,而不是提前当地时间,则可以减少计时器的延迟。

    【讨论】:

    • 我确实尝试过这个,因为它似乎是最简单的方法。问题是它不允许我使用双零来声明一个变量(这确实意味着我可以用很多代码来实现它,但它看起来并不“漂亮”)。
    • 双零是什么意思?
    • 如果我将值设置为整数,例如 hh、mm、ss,一旦它们达到 0,它们通常显示为 0.0.0 而不是 00.00.00。如果我将 +1 添加到秒(显示为 1、2、3.. 而不是 01、02、03),也会发生同样的情况。
    猜你喜欢
    • 2021-08-22
    • 2022-01-23
    • 1970-01-01
    • 2020-07-01
    • 2013-07-08
    • 1970-01-01
    • 2013-04-12
    • 2020-02-26
    • 1970-01-01
    相关资源
    最近更新 更多