以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]还是关于日期得问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=140383)

--  作者:jsjxjsj
--  发布时间:2019/9/4 17:02:00
--  [求助]还是关于日期得问题

图片点击可在新窗口打开查看此主题相关图片如下:xyk11.png
图片点击可在新窗口打开查看
做了一个信用卡管理得表,重置列时老是出错。头大

图片点击可在新窗口打开查看此主题相关图片如下:xyk1.png
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2019/9/4 17:48:00
--  
贴出代码,而不是截图,这样别人没有办法改。

另外没看懂这个代码要做什么?

--  作者:jsjxjsj
--  发布时间:2019/9/4 17:55:00
--  

表事件

 

信用卡信息表_DataColChanged

 

Select Case e.DataCol.Name

    Case "账单固定日","还款固定日"

        Dim cd As DataRow=e.DataRow

        Dim d1 As Date=Date.Today

        Dim y As Integer =d1.year

        Dim m As Integer=d1.month

        Dim d As Integer=d1.day

        If cd.isnull("账单固定日") OrElse cd.Isnull("还款固定日") Then

            cd("账单日")=Nothing And cd("最后还款日")=Nothing

        Else

            cd("账单日")=new Date(y,m,cd("账单固定日"))

            If cd("账单固定日")>cd("还款固定日") Then

                If m<12 Then

                    m=m+1

                Else

                    y=d1.AddYears(1).year

                    m=1

                End If

            End If

            If cd("还款固定日")=31 Then

                d=Date.daysinmonth(y,m)

                cd("最后还款日")= new Date(y,m,d)

            Else

                cd("最后还款日")= new Date(y,m,cd("还款固定日"))

            End If

        End If

End Select


--  作者:jsjxjsj
--  发布时间:2019/9/4 17:59:00
--  
把完整代码发出来,突然又莫名其妙不出错了。搞不懂。

就是做个简单得练习,通过整数的 “固定账单日”和“还款固定日”,看怎么得到实际的“账单日”和“最后还款日”。举个列子,信用卡账单日是28号,最后还款日是下月17号,怎么得到实际日期。

--  作者:jsjxjsj
--  发布时间:2019/9/4 18:01:00
--  
新手刚学,还有可多东西没弄明白,说的不清楚得地方,还望谅解
--  作者:有点蓝
--  发布时间:2019/9/5 8:28:00
--  
举个列子,信用卡账单日是28号,最后还款日是下月17号,怎么得到实际日期。-- 实际日期应该是哪个日期?

Select Case e.DataCol.Name
    Case "账单固定日","还款固定日"
        Dim cd As DataRow=e.DataRow
        Dim d1 As Date=Date.Today
        Dim y As Integer =d1.year
        Dim m As Integer=d1.month
        Dim d As Integer=d1.day
        If cd.isnull("账单固定日") OrElse cd.Isnull("还款固定日") Then
            cd("账单日")=Nothing
            cd("最后还款日")=Nothing
        Else
            Dim d2 As Date = new Date(y,m,Date.DaysInMonth(y,m))
            If d2.Day < cd("账单固定日")
                cd("账单日")= d2
            Else
                cd("账单日")=new Date(y,m,cd("账单固定日"))
            End If
            If cd("账单固定日")>cd("还款固定日") Then
                If m<12 Then
                    m=m+1
                Else
                    y=d1.AddYears(1).year
                    m=1
                End If
            End If
            If cd("还款固定日")=31 Then
                d=Date.daysinmonth(y,m)
                cd("最后还款日")= new Date(y,m,d)
            Else
                cd("最后还款日")= new Date(y,m,cd("还款固定日"))
            End If
        End If
End Select

--  作者:jsjxjsj
--  发布时间:2019/9/5 11:37:00
--  
Dim d2 As Date = new Date(y,m,Date.DaysInMonth(y,m))
            If d2.Day < cd("账单固定日")
                cd("账单日")= d2
            Else
                cd("账单日")=new Date(y,m,cd("账单固定日"))
            End If


还是你考虑得严谨些,谢了。