Foxtable(狐表)用户栏目专家坐堂 → 关于日期计算问题


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

主题:关于日期计算问题

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


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

Dim dt_xyk As DataTable = DataTables("信用卡")
Dim dt_lsz As DataTable = DataTables("流水账")
Dim dt_dyyh As DataTable = DataTables("还款")
dt_dyyh.DataRows.Clear
Dim d As Date = new Date(Date.Today.Year, Date.Today.Month, 1)
Dim ds() As Date = {d, d.AddMonths(1)}
For Each d In ds
    For Each dr As DataRow In dt_xyk.DataRows
        Dim ndr As DataRow = dt_dyyh.AddNew
        ndr("账户名称") = dr("账户名称")
        ndr("账单日") = d.AddDays(dr("账单日")-1)
        ndr("转出") = dt_lsz.Compute("sum(金额)", "账户名称 = '" & ndr("账户名称") & "' and 日期 >= #" & ndr("账单日").addmonths(-1) & "# and 日期 <= #" & ndr("账单日") & "# and 类别 = '转出'")
        ndr("转入") = dt_lsz.Compute("sum(金额)", "账户名称 = '" & ndr("账户名称") & "' and 日期 >= #" & ndr("账单日").addmonths(-1) & "# and 日期 >= #" & ndr("账单日") & "# and 类别 = '转入'")
        ndr("信用额度") = dr("信用额度")
        ndr("当月应还") = ndr("转出") - ndr("转入")
        ndr("可用额度") = ndr("信用额度") - ndr("转出") + ndr("转入")
        If val(dr("还款日")) < val(dr("账单日")) Then
            ndr("还款日") = d.AddDays(dr("还款日")-1).AddMonths(1)
        Else
            ndr("还款日") = d.AddDays(dr("还款日")-1)
        End If
        If ndr("当月应还") > 0 Then
            If ndr("账单日") > Date.Today Then
                ndr("账单状态") = "未出账,没还款"
            Else
                ndr("账单状态") = "已出账,没还款"
            End If
        Else
            If ndr("账单日") > Date.Today Then
                ndr("账单状态") = "未出账,没还款"
            Else
                ndr("账单状态") = "已出账,已还款"
            End If
        End If
        ndr("账单月份") = Format(d, "yyyyMM")
    Next
Next

 回到顶部
帅哥哟,离线,有人找我吗?
裴保民
  22楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2018/1/19 23:30:00 [只看该作者]

甜老师经过测试:
(1)如果有逾期的数据,这段代码测试不出来的

(2)可用额度计算的不对,他只是算本期的数据,如果有逾期的数据、下一期的数据时可用额度没有把他们计算进去
[此贴子已经被作者于2018/1/20 0:04:32编辑过]

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/1/20 9:30:00 [只看该作者]

看不懂你的业务逻辑。麻烦用文字详细说明一下要如何进行计算?同时用某一个卡的流水举例说明正确的结果和计算流程

 回到顶部
帅哥哟,离线,有人找我吗?
裴保民
  24楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2018/1/20 13:22:00 [只看该作者]

现在有一张“还款”表,数据来源于“流水账表”和“信用卡表” 假如有两张卡分别为“交通银行信用卡”和“光大银行信用卡”。其中“交通银行信用卡”账单日为每月的28号,还款日为账单日后25天;“光大银行银行信用卡”账单日为每月的25号,还款日为每月的15日,我想实现以下功能:
(1)根据账单日统计本期账单该还的金额和账单日以后的的未出账单的数据,注意本期账单包含(如果以前各期账单未还或未足额还款的账单)如果有则“账单状态”显示的是"已出账单,“逾期未还款如果已出账单,未还款”应还额应该是本期流水和以前未还额的合计,并以红色突出显示该行;如果只是本期未还则显示“已出账单,未还款”如果该银行卡离该还日期在7天以内怎该行已红色突出显示;下期期账单显示为“未出账单,未还款”;
(2)可有额度,应该是信用额度-本期流水-未出账单流水-以前逾期的流水。
蓝老师该怎么设计一下呢?
[此贴子已经被作者于2018/1/20 13:22:18编辑过]

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/1/20 14:38:00 [只看该作者]

在还款表手工录入上传的项目的数据的实际最终效果看看

 回到顶部
帅哥哟,离线,有人找我吗?
裴保民
  26楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2018/1/20 16:07:00 [只看该作者]


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

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


加好友 发短信
等级:超级版主 帖子:106028 积分:539233 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/1/20 16:13:00 [只看该作者]

看不出你这个数据和上传的项目数据有什么关系!

请以上传的项目的数据为例,把信用卡和流水账这2个表所有数据按正确的结果手工填写到还款表,然后发上来

 回到顶部
帅哥哟,离线,有人找我吗?
裴保民
  28楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2018/1/20 18:21:00 [只看该作者]

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



生成的还款”表有以下错误:
(1)本期以前未还的数据和未出账单的数据未统计进去只统计了本期的数据,所以可用额度对。
(2)如果本期以前各期有未还款或未全额还款时,账单状态未赋值为“已出账单逾期未还款
[此贴子已经被作者于2018/1/20 18:28:55编辑过]

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


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

1、无法列出什么时候预期的。

 

2、看懂代码,再自由扩展,好么?

 

Dim dt_xyk As DataTable = DataTables("信用卡")
Dim dt_lsz As DataTable = DataTables("流水账")
Dim dt_dyyh As DataTable = DataTables("还款")
dt_dyyh.DataRows.Clear
Dim d As Date = new Date(Date.Today.Year, Date.Today.Month, 1)
Dim ds() As Date = {d, d.AddMonths(1)}
For Each d In ds
    For Each dr As DataRow In dt_xyk.DataRows
        Dim ndr As DataRow = dt_dyyh.AddNew
        ndr("账户名称") = dr("账户名称")
        ndr("账单日") = d.AddDays(dr("账单日")-1)
        ndr("转出") = dt_lsz.Compute("sum(金额)", "账户名称 = '" & ndr("账户名称") & "' and 日期 >= #" & ndr("账单日").addmonths(-1) & "# and 日期 <= #" & ndr("账单日") & "# and 类别 = '转出'")
        ndr("转入") = dt_lsz.Compute("sum(金额)", "账户名称 = '" & ndr("账户名称") & "' and 日期 >= #" & ndr("账单日").addmonths(-1) & "# and 日期 >= #" & ndr("账单日") & "# and 类别 = '转入'")
        Dim yq_out = dt_lsz.Compute("sum(金额)", "账户名称 = '" & ndr("账户名称") & "' and 日期 < #" & ndr("账单日").addmonths(-1) & "# and 类别 = '转出'")
        Dim yq_in = dt_lsz.Compute("sum(金额)", "账户名称 = '" & ndr("账户名称") & "' and 日期 < #" & ndr("账单日").addmonths(-1) & "# and 类别 = '转入'")

        ndr("信用额度") = dr("信用额度")
        ndr("当月应还") = ndr("转出") - ndr("转入") + yq_out + yq_in
        ndr("可用额度") = ndr("信用额度") - ndr("当月应还")
        If val(dr("还款日")) < val(dr("账单日")) Then
            ndr("还款日") = d.AddDays(dr("还款日")-1).AddMonths(1)
        Else
            ndr("还款日") = d.AddDays(dr("还款日")-1)
        End If
        If ndr("当月应还") > 0 Then
            If ndr("账单日") > Date.Today Then
                ndr("账单状态") = "未出账,没还款"
            Else
                ndr("账单状态") = "已出账,没还款"
            End If
        Else
            If ndr("账单日") > Date.Today Then
                ndr("账单状态") = "未出账,没还款"
            Else
                ndr("账单状态") = "已出账,已还款"
            End If
        End If
        ndr("账单月份") = Format(d, "yyyyMM")
    Next
Next


 回到顶部
帅哥哟,离线,有人找我吗?
裴保民
  30楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2018/1/22 8:54:00 [只看该作者]

 (1)、只要本期以前还有未还的金额都是逾期,
(2)、看了好几遍,看不太清楚代码逻辑


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


想到到这样的功能

[此贴子已经被作者于2018/1/22 9:12:36编辑过]

 回到顶部
总数 39 上一页 1 2 3 4 下一页