设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: ccczzz
打印 上一主题 下一主题

[其它] 如何自动生成应出勤天数?

[复制链接]
11#
 楼主| 发表于 2006-8-14 01:39:00 | 只看该作者
一月份工作日计算错误,见附件,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
12#
发表于 2006-8-14 01:59:00 | 只看该作者
   请问ccczzz先生 1月1日、1月29日既是星期天也是假日,麻烦你对着日历一天一天计算清楚再下结论

   
13#
 楼主| 发表于 2006-8-14 03:21:00 | 只看该作者
是的,正因为元旦和春节都和星期日碰在一起,使工作日的计算出现了错误,能否自动判别重叠的假日?在实际应用中法定假日和周日是分别计算的,即2006年一月份有13天假期。谢谢。
14#
发表于 2006-8-14 04:02:00 | 只看该作者
  你的算法是法定假期遇到星期6、星期日顺推对吗,

Function Rt_Day(BegDate As Variant) As Long

'***************Code Start**********************************
'
'计算指定月份的天数(扣除星期六、日、法定假期)法定假日如果刚好是双休日,则顺推
'
'BegDate 开始日期及时间

'用法:  Rt_day(#2006-7-1#)
'作者:   andymark    2006-8-13
'http://bbs.office-cn.net
'
'*********************************************************
    Dim Rs As New ADODB.Recordset
    Dim DateCnt As Variant
    Dim EndDays As Variant
    Dim IntDays As Integer

    DateCnt = CDate(Format(BegDate, "yyyy-m-1"))
    EndDays = DateAdd("d", -1, DateAdd("M", 1, DateCnt))
    IntDays = 0
   
    Do While DateCnt <= EndDays
        If Format(DateCnt, "ddd") <> "Sun" And _
           Format(DateCnt, "ddd") <> "Sat" Then
            IntDays = IntDays + 1
        End If

        DateCnt = DateAdd("d", 1, DateCnt)

    Loop

    Rs.Open "select * from 法定假日 where 月=" & Format(BegDate, "m") & "", CurrentProject.Connection, adOpenDynamic
   
    If Not Rs.EOF Then
        
        Do While Not Rs.EOF
            
              IntDays = IntDays - 1
            Rs.MoveNext
        Loop

    End If
    Rt_Day = IntDays
    Set Rs = Nothing
End Function
'*********** Code End **************


[此贴子已经被作者于2006-8-13 20:08:18编辑过]

15#
 楼主| 发表于 2006-8-14 05:51:00 | 只看该作者
是这样的,谢谢
16#
发表于 2008-3-20 15:50:07 | 只看该作者
受益匪浅,呵呵。我再消化一下
17#
发表于 2008-3-22 15:17:22 | 只看该作者
学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-6-10 13:22 , Processed in 0.109115 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表