规则是在您工作的第一年之后,根据您的周年日,您将获得40个小时。 (例如,我于2011年12月5日被聘用,我在2012年12月5日度假40小时。)
然后每年都会滚动到日历年。因此,使用我的上述示例,我需要在2012年12月5日至2012年12月31日期间使用我的40小时,因为在2013年1月1日我的四十岁开始。
在三年(2014年1月1日),日历日期,我会得到80小时。
在10年的日历日期,它会变为120.我正在使用的代码如下,但它没有正确显示...
Function calcVacEarned(asOfDate As Date, HireDate As Date)
Dim anniversary As Boolean
Dim yos As Integer
anniversary = False
yos = Year(asOfDate) - Year(HireDate)
If Month(HireDate) = Month(asOfDate) And (yos = 1) Then
If Day(HireDate) <= Day(asOfDate) Then
anniversary = True
End If
ElseIf Month(HireDate) < Month(asOfDate) And (yos = 1) Then
anniversary = True
End If
If anniversary Then
calcVacEarned = 40
Else
Select Case yos
Case Is > 10
calcVacEarned = 120
Case Is > 3
calcVacEarned = 80
Case Is > 1
calcVacEarned = 40
Case Else
calcVacEarned = 0
End Select
End If
End Function
我的公司每天使用它来全面计算小时数,可以使用一些帮助。提前谢谢!
答案 0 :(得分:0)
假设您正在为yos
返回正确的整数:
If anniversary Then
Select Case yos
Case 1
MsgBox "You actually get vacation"
Case 2
MsgBox "OP said nothing regarding 2 years!"
Case 3
MsgBox "You get 80 hours!"
Case 10
MsgBox "You get 120 hours!"
End Select
End If