Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > 源码示例

【Access自定义函数】当前月第一个工作日的示例,当前月最后一个工作日(周六周末不算工作日及不考虑国假情况)

时 间:2013-01-19 11:47:51
作 者:红尘如烟   ID:10768  城市:成都
摘 要:Accessoft-当前月第一个工作日的示例,当前月最后一个工作日(周六周末不算工作日)
正 文:

    网友问题:用VBA怎么显示当前月的第一个工作日?不考虑国假及周六周日不算工作日情况下。

附   件:

点击下载此附件

 

'Expression参数可以是任意日期,如果指定了该参数,则取其所在月份的第一个非周六、周日的日期
'如果省略该参数,则取当前系统日期所在月份的第一个非周六、周日的日期
'使用说明:获取当月第一个工作日函数(周六周末不算工作日情况下)
'使用方法:=FirstWorkDay() 或者 =FirstWorkDay([日期数据])
Function FirstWorkDay(Optional Expression As Variant) As Date
    Dim dtm As Date

    If IsDate(Expression) Then
        dtm = CDate(Expression)
    Else
        dtm = Date
    End If
    dtm = DateSerial(Year(dtm), Month(dtm), 1)
    Select Case Weekday(dtm, vbMonday)
    Case 1 To 5
        FirstWorkDay = dtm
    Case 6
        FirstWorkDay = dtm + 2
    Case 7
        FirstWorkDay = dtm + 1
    End Select
End Function


'使用说明:获取当月最后工作日函数(周六周末不算工作日情况下)
'使用方法:=LastWorkDay() 或者 =LastWorkDay([日期数据])
Function LastWorkDay(Optional Expression As Variant) As Date
    Dim dtm As Date

    If IsDate(Expression) Then
        dtm = CDate(Expression)
    Else
        dtm = Date
    End If
    dtm = DateSerial(Year(dtm), Month(dtm) + 1, 1) - 1
    Select Case Weekday(dtm, vbMonday)
    Case 1 To 5
        LastWorkDay = dtm
    Case 6
        LastWorkDay = dtm - 1
    Case 7
        LastWorkDay = dtm - 2
    End Select
End Function




Access软件网QQ交流群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助