Function uf_NthWeekday(dtmDate As Date, intNth As Integer, intWeekday As Integer) As Date
'===============================================================================
'-函数名称: uf_NthWeekday
'-功能描述: 计算所属日期的第几个星期,星期几的日期
'-输入参数说明: 参数1:dtmDate 要求计算的当前日期
' 参数2:intNth 当前日期的第几个星期
' 参数3:intWeekday 要求显示星期几
'-返回参数说明: 返回你要显示的当前日期的第几个星期,星期几的日期
'-使用语法示例: uf_NthWeekday(date,2,3) date的日期为2007年10月11日
'-参考: 《VBA高级开发指南》
'-使用注意:
'-兼容*: 2000,XP,2003
'-作者: Victor Duane
'-更新日期: 2007-10-11
'===============================================================================
If intNth < 1 Then
'MsgBox "对不起,你要求输入的星期数不能小于1,请重新输入", vbCritical, "提示"
Exit Function
End If
If intWeekday < 1 or intWeekday > 7 Then
'MsgBox "对不起,你要求输入的星期几必须在1~7之间,请重新输入", vbCritical, "提示"
Exit Function
End If
Dim dtmStartday As Date
dtmStartday = DateSerial(Year(dtmDate), Month(dtmDate), 1)
Do While Weekday(dtmStartday) <> intWeekday + 1
dtmStartday = dtmStartday + 1
Loop
uf_NthWeekday = dtmStartday + (intNth - 1) * 7
End Function