日期:2014-05-17 浏览次数:21119 次
Function getStartDay(y,m,s)
'传递三个参数,年、月和第几个星期数
'本函数以第一个星期一为第一周
'y 的范围为大于1900的四位整数
'm 的范围为1至12的整数
's 的取值范围为自然数
'当取值失败,返回当前日期
Dim tmpDate,firstday
If y < 1900 Or m < 1 Or m > 12 Or s < 1 Or y <> Int(y) Or m <> Int(m) Or s <> Int(s) Then
getStartDay = Date()
End If
tmpDate = CDate(y & "-" & m & "-1")
firstday = Weekday(tmpDate)
If firstday > 2 Then
firstday = tmpDate + 9 - firstday
ElseIf firstday = 1 Then
firstday = tmpDate + 1
Else
firstday = tmpDate
End If
getStartDay = firstday + (s - 1) * 7
End Function