Foxtable(狐表)用户栏目专家坐堂 → 夜深人静 向高手请教个问题


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

主题:夜深人静 向高手请教个问题

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


加好友 发短信
等级:五尾狐 帖子:1181 积分:8108 威望:0 精华:1 注册:2009/1/17 10:52:00
夜深人静 向高手请教个问题  发帖心情 Post By:2015/5/23 0:13:00 [显示全部帖子]

表A  中  结束日期 根据  开始日期 - 工作日
比如说  开始日期  5-22   工作 10  ;根据上面算法  结束日期 应该是5-31


但是 有个日历表,日历表中  有全年的工作日安排

怎样在日历表中 找出 从 5-22 到未来 10个连续日期中,包含多少个 非工作日??并把这非工作日补充到  结束日期里面

如 开始日期 5-22  周期 10 ,未来10天中有2个非工作日,所以 周期应该是,结束日期应该是 6-2

另外,如果  6-1 或 6-2 中,又有非工作日,那么又要补充!!

各位大师们,有何办法呢!!!
实在是思考不到方法,请教一下!非常感谢



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


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


加好友 发短信
等级:五尾狐 帖子:1181 积分:8108 威望:0 精华:1 注册:2009/1/17 10:52:00
  发帖心情 Post By:2015/5/23 12:08:00 [显示全部帖子]

不一定是星期日——日历表,是有人去管理的,有可能其它原因(国家放假日或公司重要纪念日放假),某个日期,也是非工作日

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


加好友 发短信
等级:五尾狐 帖子:1181 积分:8108 威望:0 精华:1 注册:2009/1/17 10:52:00
  发帖心情 Post By:2015/5/23 13:17:00 [显示全部帖子]

Select Case e.DataCol.Name
    
    Case "开始日期","工作日"
        
        Dim d1 As Date = e.DataRow("开始日期")
        Dim dr1,dr2 As DataRow
        dr1 = DataTables("日历").Find("[日期] = '" & d1 & "'")    
        If dr1("是否是工作日") = False Then
            Dim d2 As Date = e.DataRow("开始日期")
            For i As Integer=1 To e.DataRow("工作日")
                d2=d2.AddDays(1)
                dr2 = DataTables("日历").Find("[日期] = '" & d2 & "'")
                If dr2 IsNot Nothing Then
                    If dr2("是否是工作日") = False Then
                        i=i-1
                    End If
                End If
            Next
            e.DataRow("结束日期") = d2
        Else
            Dim d As Date = e.DataRow("开始日期")
            For i As Integer=1 To e.DataRow("工作日")
                d=d.AddDays(1)
                If dr1 IsNot Nothing Then
                    If dr1("是否是工作日") = False Then
                        i=i-1
                    End If
                End If
            Next
            e.DataRow("结束日期") = d
        End If
        
End Select


谢谢大家,谢谢B版。

这样就可以了

 回到顶部