在我的项目中,我创建了一个标签来显示开始时间和两个按钮来调整它,一个是每次点击加15分钟,另一个是减去15分钟。代码如下
Label1.text = "04:30 AM"
Private Sub Btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Add.Click, Btn_Sub.Click
Dim btn_clicked As Button = Ctype(sender, Button)
If btn_clicked.Name = "Btn_Add" Then
Label1.text = Ctype(Label.text, DateTime).AddMinutes(15).ToString("hh:mm tt")
ElseIf btn_clicked.Name = "Btn_Sub" Then
Label1.text = Ctype(Label.text, DateTime).AddMinutes(-15).ToString("hh:mm tt")
End If
End Sub
首先按钮工作正常,但如果我一直点击减去按钮,我希望时间会改变为一个循环,例如,凌晨4:30 - >凌晨4:15 - > ... - > 12:15 AM - >凌晨12:00 - >晚上11:45 - >晚上11:30
但是一旦跳跃的午夜事件发生,异常就会被抛弃,
System.ArgumentOutOfRangeException未处理Message =“指定的参数超出了有效值的范围。”
那会怎么样?日期时间的最小值是基于MSDN的00:00:00.0000000,0001年1月1日。我是否需要将年份日期指定为初始值?
谢谢!
答案 0 :(得分:1)
尝试这样
Private Sub Btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Add.Click, Btn_Sub.Click
Dim btn_clicked As Button = CType(sender, Button)
Static startTime As DateTime = #12/30/5000 4:30:00 AM#
If btn_clicked.Name = "Btn_Add" Then
startTime = startTime.AddMinutes(15)
Label1.text = startTime.ToString("hh:mm tt")
ElseIf btn_clicked.Name = "Btn_Sub" Then 'in the OP this said Btn_Add also
startTime = startTime.AddMinutes(-15)
Label1.text = startTime.ToString("hh:mm tt")
End If
End Sub