Foxtable(狐表)用户栏目专家坐堂 → 工作日期


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

主题:工作日期

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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/30 23:53:00 [显示全部帖子]

建议法定假期表直接列出具体的日期,不要使用天数。这样计算就方便多了

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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/31 8:46:00 [显示全部帖子]

Select Case e.DataCol.Name
    Case "开始日期","天数"
        Dim dr As DataRow
        dr = e.DataRow
        If dr.IsNull("开始日期") OrElse dr.IsNull("天数") Then
            dr("结束日期") = Nothing
        Else
            Dim c As Integer = 0
            Dim d As Date
            Dim i As Integer = 1
            Dim drs = DataTables("法定假期").Select("")
            Dim lst1 As new List(of Date)
            Dim lst2 As new List(of Date)
            For Each cdr As DataRow In drs
                If cdr("名称") = "上班" Then
                    For m As Integer = 1 To cdr("天数")
                        lst2.Add(cdr("开始日期").AddDays(m-1))
                    Next
                Else
                    For m As Integer = 1 To cdr("天数")
                        lst1.Add(cdr("开始日期").AddDays(m-1))
                    Next
                End If
            Next
            Dim tshu As Integer = dr("天数")
            d = dr("开始日期")
            Do While i < tshu
                d = d.AddDays(1)
                If d.DayOfWeek = 0 OrElse d.DayOfWeek = 6 Then
                    If lst2.Contains(d) Then
                        i = i + 1
                    End If
                Else
                    If lst1.Contains(d) = False Then
                        i = i + 1
                    End If
                End If
            Loop
            dr("结束日期") = d
        End If
End Select

 回到顶部