这是一个简单的时钟
我的Timer1_Tick
获取该代码:
LocalTime.Text = TimeOfDay.ToString("h:mm:ss tt")
如何添加6小时? 谢谢
答案 0 :(得分:1)
您不应使用标签和文本框来存储数据(在这种情况下是时间)。标签只应用于显示一些信息和文本框以显示和输入信息。将数据存储在变量,字段和属性中。
以
形式定义此字段Dim t As Date = Date.Now
方法
t = t.AddHours(6)
LocalTime.Text = t.ToString("h:mm:ss tt")
即。您始终使用存储在字段中的值,然后从中更新标签文本。
由于标签中的时间存储为字符串,因此无法轻松添加小时。您必须将其转换回Date结构,添加小时数,然后将其转换回字符串。
如果要在Timer_Tick中显示多个时钟,可以执行此操作(请注意,VB中的Date
只是System.DateTime结构的别名):
Dim local = DateTime.Now
LocalTime.Text = local.ToString("h:mm:ss tt")
AnotherLabel.Text = local.AddHours(6).ToString("h:mm:ss tt")
YetAnotherLabel.Text = local.AddHours(-2).ToString("h:mm:ss tt")
答案 1 :(得分:0)
DateTime.TimeOfDay
是TimeSpan。因此,您可以使用Hours
属性或Add
方法更改值。例如:
LocalTime.Text = TimeOfDay.Add(TimeSpan.FromHours(6)).ToString("hh\:mm\:ss")
要减去小时数,请使用Subtract方法而不是Add
。此外,使用具有负TimeSpan值的Add
方法可以获得相同的结果:
LocalTime.Text = TimeOfDay.Add(TimeSpan.FromHours(-6)).ToString("hh\:mm\:ss")
注意,TimeSpan
表示时间间隔。设有经过时间的值等于56小时36分12秒。此值的AM / PM标记不是实际的。因此,要获取AM / PM时间格式,您需要使用DateTime
结构而不是TimeSpan
的值:
NEWYORK.Text = DateTime.Now.Add(TimeSpan.FromHours(6)).ToString("hh:mm tt")
请参阅Choosing between DateTime, DateTimeOffset, TimeSpan, and TimeZoneInfo文章中的详细信息。