以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  计算错误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=125326)

--  作者:nbsugu_z
--  发布时间:2018/9/26 14:14:00
--  计算错误
Select Case e.DataCol.name
    Case "起日期","止日期","月利率","本金金额"
        If e.DataRow.IsNull("起日期") OrElse e.DataRow.IsNull("止日期") Then
            e.DataRow("天数") = Nothing
            
        Else
            Dim y,m,d As Integer
            Dim dt1 As Date = e.DataRow("起日期")
            Dim dt2 As Date = e.DataRow("止日期")
            DateYMD(dt1,dt2,y,m,d)
            dt1 = dt1.AddYears(y)
            d= (dt2- dt1).TotalDays()
            e.DataRow("天数") =  d
           e.DataRow("月利率") =10
            e.DataRow("利息")=  e.DataRow("本金金额")* e.DataRow("月利率") *  e.DataRow("天数") /30000
        End If
      End Select

按上面代码计算e.DataRow("天数") 如果起日期为2018-04-16  止日期为2019-04-16  结果为0。不跨年计算是对的,跨年就无法计算

--  作者:有点甜
--  发布时间:2018/9/26 14:21:00
--  
Select Case e.DataCol.name
    Case "起日期","止日期","月利率","本金金额"
        If e.DataRow.IsNull("起日期") OrElse e.DataRow.IsNull("止日期") Then
            e.DataRow("天数") = Nothing
            
        Else
 
            Dim dt1 As Date = e.DataRow("起日期")
            Dim dt2 As Date = e.DataRow("止日期")
            Dim d= (dt2- dt1).TotalDays()
            e.DataRow("天数") =  d
            e.DataRow("月利率") =10
            e.DataRow("利息")=  e.DataRow("本金金额")* e.DataRow("月利率") *  e.DataRow("天数") /30000
        End If
      End Select