Foxtable(狐表)用户栏目专家坐堂 → 【求助】求助时间指定 计算与累加


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

主题:【求助】求助时间指定 计算与累加

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
【求助】求助时间指定 计算与累加  发帖心情 Post By:2017/10/15 17:44:00 [只看该作者]

求助:
1、如何根据还款日,账单日
自动制定账单期间  还款时间  为下一个月的对应日期
比如还款日是4号   对应还款时间为 2017-10-4


2、如果根据账单期间与分期数
生成分期明细对应的时间   分期序列
比如账单期间 2017-10-4  分期数为5
对应生成如下格式:
账单期间          分期序列
2017-11-4       1
2017-12-4       2
2018-1-4        3
2018-2-4      4
2018-3-4      5
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:信用卡管理.table

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


[此贴子已经被作者于2017/10/15 17:44:48编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/15 17:52:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
李孝春
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜)参考这个例子 http://www.f...  发帖心情 Post By:2017/10/15 20:06:00 [只看该作者]

有点甜老师 
1、第一个问题已经参照他的根据账单日及还款日 对应生成本月账单日 及还款日期了
2、第二个问题尚未解决,继续求解!

如果根据账单期间与分期数
生成分期明细对应的时间   分期序列
比如账单期间 2017-10-4  分期数为5
对应生成如下格式:
账单期间          分期序列
2017-11-4       1
2017-12-4       2
2018-1-4        3
2018-2-4      4
2018-3-4      5
 

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/15 20:38:00 [只看该作者]

For Each dr As DataRow In DataTables("账单分期").Select("")
    Dim fdr As DataRow = DataTables("银行卡信息").find("银行卡号 = '" & dr("银行卡号") & "'")
    Dim d As Date = dr("账单期间")
    d = new Date(d.year, d.Month, fdr("还款日"))
    For i As Integer = 1 To dr("分期数")
        Dim ndr As DataRow = DataTables("分期明细").find("银行卡号 = '" & dr("银行卡号") & "' and 还款期间 = #" & d.AddMonths(i) & "#")
        If ndr Is Nothing Then
            ndr = DataTables("分期明细").AddNew
        End If
        ndr("银行卡号") = dr("银行卡号")
        ndr("还款期间") = d.AddMonths(1)
    Next
Next

 回到顶部
帅哥哟,离线,有人找我吗?
李孝春
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜)For Each dr As DataRow In DataTabl...  发帖心情 Post By:2017/10/15 21:17:00 [只看该作者]

经过扩展后代码成为如下:【想实现还款日如果小于账单日时,还款期间则加一个月】

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

For Each dr As DataRow In DataTables("账单分期").Select("")
    Dim fdr As DataRow = DataTables("银行卡信息").find("银行卡号 = '" & dr("银行卡号") & "'")
    Dim d As Date = dr("还款期间")
    d = new Date(d.year, d.Month, fdr("还款日"))
    Dim d1 As Date = dr("账单期间")
    d1 = new Date(d.year, d.Month, fdr("账单日"))
    For i As Integer = 1 To dr("分期数")
        Dim ndr As DataRow = DataTables("分期明细").find("银行卡号 = '" & dr("银行卡号") & "' and 还款期间 = #" & d.AddMonths(i) & "#")
        If ndr Is Nothing Then
            ndr = DataTables("分期明细").AddNew
        End If
        ndr("银行卡号") = dr("银行卡号")
        ndr("银行名称")=dr("银行名称")
        ndr("每月金额")=dr("每月金额")
        ndr("每月利息")=dr("每月利息")
       ndr("还款期间") = d.AddMonths(i)
        ndr("账单期间") = d1.AddMonths(i)
        ndr("分期序列")=0+i
    End If
Next
Next
代码运行后错误如下:

图片点击可在新窗口打开查看此主题相关图片如下:12.png
图片点击可在新窗口打开查看
麻烦修整一下红色部分代码
If d<d1 Then
ndr("还款期间") = d.AddDays(d("还款日")-1).AddMonths(1)
Else
ndr("还款期间") = d.AddDays(d("还款日")-1)
End If

[此贴子已经被作者于2017/10/15 21:25:15编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/15 21:25:00 [只看该作者]

没看懂你的需求。你要这样写?

 

        If d<d1 Then
            ndr("还款期间") = d.AddDays(fdr("还款日")-1).AddMonths(1)
        Else
            ndr("还款期间") = d.AddDays(fdr("还款日")-1)
        End If


 回到顶部
帅哥哟,离线,有人找我吗?
李孝春
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜)没看懂你的需求。你要这样写?&nbs...  发帖心情 Post By:2017/10/15 21:39:00 [只看该作者]

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


不一定要那样写  只要实现效果如下即可:

因为账单日是12日  还款日是1号
当账单日大于还款日的时候  还款日就要弄到下个月1号
比如2017-10-12日是账单期间 那么还款期间就应该是2018-11-1
[此贴子已经被作者于2017/10/15 21:48:52编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/15 21:49:00 [只看该作者]

For Each dr As DataRow In DataTables("账单分期").Select("")
    Dim fdr As DataRow = DataTables("银行卡信息").find("银行卡号 = '" & dr("银行卡号") & "'")
    Dim d As Date = dr("还款期间")
    d = new Date(d.year, d.Month, fdr("还款日"))
    Dim d1 As Date = dr("账单期间")
    d1 = new Date(d1.year, d1.Month, fdr("账单日"))
    For i As Integer = 1 To dr("分期数")
        Dim ndr As DataRow = DataTables("分期明细").find("银行卡号 = '" & dr("银行卡号") & "' and 账单期间 = #" & d1.AddMonths(i) & "#")
        If ndr Is Nothing Then
            ndr = DataTables("分期明细").AddNew
        End If
        ndr("银行卡号") = dr("银行卡号")
        ndr("银行名称")=dr("银行名称")
        ndr("每月金额")=dr("每月金额")
        ndr("每月利息")=dr("每月利息")
        If d<=d1 Then
            ndr("还款期间") = d.AddMonths(i+1)
        Else
            ndr("还款期间") = d.AddMonths(i)
        End If
        ndr("账单期间") = d1.AddMonths(i)
        ndr("分期序列")=0+i
    Next
Next

 回到顶部
帅哥哟,离线,有人找我吗?
李孝春
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜)For Each dr As DataRow In DataTabl...  发帖心情 Post By:2017/10/15 21:59:00 [只看该作者]

有点填老师  按照你的代码完美运行 


有点甜老师 在等待你回复的时间我检查了一下并参照下面的代码
      ''If fdr("还款日") < fdr("账单日")Then
            ''ndr("还款期间") = d.AddDays(fdr("还款日")-1).AddMonths(1)
        ''Else
            ''ndr("还款期间") = d.AddDays(fdr("还款日")-1)
        ''End If
运行结果如下:

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


为什么会比原来的还款时间要大三天呢?原来是4号 现在是7号  是那里弄错了么?还是这样写根本就不对呢?





 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/15 22:01:00 [只看该作者]

 d.AddDays(fdr("还款日")-1).AddMonths(1)

 

这句代码的意思是

 

 在d的基础上,先增加 4-1填,然后增加 一个月

 


 回到顶部
总数 13 1 2 下一页