0

在我的项目中,我创建了一个标签来显示开始时间和两个按钮来调整它,一个是每次点击增加 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 AM -> 4:15 AM ->... ->12:15 AM -> 上午 12:00 -> 晚上 11:45 -> 晚上 11:30

但是一旦午夜跳跃事件发生,异常就会抛出,

System.ArgumentOutOfRangeException 未处理 Message="指定的参数超出了有效值的范围。"

那怎么会发生?基于 MSDN,日期时间的最小值为 0001 年 1 月 1 日 00:00:00.0000000。我需要指定年份日期作为初始值吗?

谢谢!

4

1 回答 1

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
于 2013-10-24T22:09:53.797 回答