将日期值添加到vb.net中的日期值

时间:2011-10-27 21:33:43

标签: vb.net datetime

我正在尝试下面的代码,并获得sql日期时间溢出异常.....问题在于黄金部分...休息到银和高级工作正常....当在黄金部分我尝试要向日期时间字段添加特定月数,我不知道执行什么操作,因为当我通过消息框检查时,ren_date的值为“12:00:00 AM”而不是添加6个月后的新日期值在mem_date值....

        Dim ren_date, mem_date As Date
        Dim renmon As String

        mem_date = TxtMemDate.Text

        ' checks the type of membership and adds corresponding number of years to the membership date and stores in renewal date

        If ComboBox1.SelectedItem = "Silver" Then
            ren_date = mem_date.AddMonths(3)
            renmon = ren_date.ToString("MMMM")
        ElseIf ComboBox1.SelectedItem = "Premium" Then
            ren_date = mem_date.AddYears(1)
            renmon = ren_date.ToString("MMMM")
        ElseIf ComboBox1.SelectedItem = "Gold" Then
            ren_date = mem_date.AddMonths(6)
            renmon = ren_date.ToString("MMMM")
        End If

        MsgBox(mem_date)
        MsgBox(ren_date)

2 个答案:

答案 0 :(得分:0)

我怀疑你的问题实际上在这里:

mem_date = TxtMemDate.Text

这可能是您尝试强制String Date的格式不正确。尝试在此行之后放置一个断点,然后使用调试器进行实验。


这是另一回事:也许你的ComboBox1.SelectedItem与字符串“Gold”不完全匹配。在Else添加If块,并在其中添加类似

的内容
MsgBox("*" & ComboBox1.SelectedItem.ToString() & "*")

这应该揭示项目文本周围是否有前导或尾随空格。

答案 1 :(得分:0)

此代码按预期执行

Dim ren_date, mem_date As DateTime
Dim renmon As String = ""

If DateTime.TryParse(TxtMemDate.Text, mem_date) Then 'convert text to date
    ' checks the type of membership and adds corresponding number of years to the membership date and stores in renewal date
    If ComboBox1.SelectedItem.ToString = "Silver" Then
        ren_date = mem_date.AddMonths(3)
        renmon = ren_date.ToString
    ElseIf ComboBox1.SelectedItem.ToString = "Premium" Then
        ren_date = mem_date.AddYears(1)
        renmon = ren_date.ToString
    ElseIf ComboBox1.SelectedItem.ToString = "Gold" Then
        ren_date = mem_date.AddMonths(6)
        renmon = ren_date.ToString
    End If
    Debug.WriteLine(renmon)
Else
    Debug.WriteLine("Date entered is not correct format")
End If