VB.NET DateTime超出范围异常

时间:2013-10-24 22:01:55

标签: vb.net datetime outofrangeexception

在我的项目中,我创建了一个标签来显示开始时间和两个按钮来调整它,一个是每次点击加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日。我是否需要将年份日期指定为初始值?

谢谢!

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