Foxtable(狐表)用户栏目专家坐堂 → 求助一个难题


  共有9817人关注过本帖树形打印复制链接

主题:求助一个难题

帅哥哟,离线,有人找我吗?
flytianr
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:50 积分:610 威望:0 精华:0 注册:2009/12/26 23:14:00
求助一个难题  发帖心情 Post By:2012/2/20 [只看该作者]

我做的项目中,有一个‘融资费用’的字段,字段的值要“销售日期”-“请款日期”,看一共在库多少天数,然后到【利率维护】表中去查询对应的利率,但利率的期间有可能是分时间段的,每个时间段的利率不同,这样就需要找出所有涉及的时间段的对应利率,乘以对应的天数和“标准金额”字段的值,来计算得出‘融资费用’。

例如:请款日期是2012-01-05,销售日期是2012-03-25,根据这两个时间,就要到【利率维护】中查找,请款日2012-01-05是在第3条记录的时间段中(2012-1-1到2012-1-31),共26天,取7.9%利率,而销售日期2012-03-25是在第8条记录中(2012-03-01至今),共25天,取6%的利率,同时中间还跨了一个2012-2-1到2012-2-29时间段中的7%,共29天。一共是三段时间,乘以标准金额的41万,最终计算出利息是多少。

 

这个公式是不是太复杂了呀,想不出如何能实现,请老师们帮忙

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目(测试).table


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/2/20 8:21:00 [只看该作者]

逻辑如下,请自行琢磨:

 

Dim st As Date = #1/5/2012# ' 开始日期
Dim et As Date = #2/25/2012# '结束日期
Dim qd As String = "丰田金融" '融资渠道
Dim je As Double = "300000" '贷款金额
Dim lx As Double
Dim ld As Date = st
Dim drs As List(of DataRow) = DataTables("利率维护").Select("融资渠道 = '" & qd & "'")
For Each dr As DataRow In drs
    If dr("利率调整开始日期") > ld Then
        If dr.IsNull("利率调整终止日期") OrElse dr("利率调整终止日期") > et Then
            lx = lx + dr("现行利率") * (st - ld).TotalDays  '自己调整计算方式
            Exit  For
        ElseIf dr("利率调整开始日期") > ld Then
            Dim nld As Date
            Dim ned As Date
            If dr("利率调整开始日期") > ld Then
                nld = dr("利率调整开始日期")
            Else
               nld = ld 
            End If
            If dr("利率调整终止日期") > et Then
                 ned = et
            Else
                ned = dr("利率调整终止日期")
            End If
            lx = lx + (ned - nld).TotalDays * dr("现行利率")
            ld = ned
        End If
    End If
Next


 回到顶部