【Access自定义函数】当前月第一个工作日的示例,当前月最后一个工作日(周六周末不算工作日及不考虑国假情况)-红尘如烟
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> 源码示例


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

发表时间:2013/1/19 11:47:51 评论(0) 浏览(34675)  评论 | 加入收藏 | 复制
   
摘 要: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群(群号:198465573)
 
 相关文章
求工作日数的示例  【林岚  2009/7/26】
【菜鸟入门】计算工龄,日期相减得出工作年限(周期)的示例\工作日示...  【麥田  2011/4/1】
Access计算两个日期之间的工作日天数的几个函数  【竹笛  2011/8/3】
[示例]计算某一段时间内的工作日和假日天数  【金宇  2012/5/12】
常见问答
技术分类
相关资源
文章搜索
关于作者

红尘如烟

文章分类

文章存档

友情链接