0

在我的 Access Database 表单上,我有一个包含假期时间计算的字段。目前的公式如下:

Function calcVacEarned(asOfDate As Date, HireDate As Date)
  Dim yos As Single

  yos = (asOfDate - HireDate) / 365.25

  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 Function

但是,时间没有正确出来。我们的假期时间从周年日期到第一年的周年日期和接下来的日历年。

例如,如果我在 2010 年 2 月 11 日被录用,我的周年纪念日是 2011 年 2 月 11 日,这将给我 1 年的服务和 5 天的假期。(所以我必须从 2011 年 11 月 2 日到 2011 年 12 月 31 日休息 5 天,否则会失去它们)

然后在 2012 年 1 月 1 日,我的假期时间将从第 2 年的 5 天开始。(我必须从 2012 年 1 月 1 日到 2012 年 12 月 31 日这 5 天。

2013 年 1 月 1 日,我将进入第三年并获得 10 天。

我需要上面的函数来表示这个......帮助!谢谢

4

1 回答 1

0

我想如果我正确理解您的问题,这将满足您的要求。您只需要更改大于 3 年的雇用日期。

Function calcVacEarned(asOfDate As Date, HireDate As Date)
    calcVacEarned = 0

    Dim yos As Single

    yos = (asOfDate - HireDate) / 365.25

    If yos > 1 And yos < 2 Then
        calcVacEarned = 40
    ElseIf yos > 2 Then
        HireDate = "01/01/" & Year(HireDate)
    End If

    yos = (asOfDate - HireDate) / 365.25

    Select Case yos
        Case Is > 10
            calcVacEarned = 120
        Case Is > 3
            calcVacEarned = 80
    End Select
End Function
于 2013-05-28T16:52:52.410 回答