我希望了解一个人是否已超过特定年龄(以年为单位),以使他有资格获得某些福利。
我发布了这个问题,因为当我在VB 6.0中使用DateDiff(使用'YYYY'作为间隔)功能时,我没有得到完美的答案
我更改了逻辑并使用了DateAdd函数,然后使用了DateDiff。我写了下面的代码来找出确切的年龄。
Public Function GetAge(dob As Date) As Integer
Dim tempDate As Date
If IsDate(dob) = False Then
GetAge = -1
Else
tempDate = DateAdd("yyyy", 11, dob)
If DateDiff("d", tempDate, Date) > 0 Then
tempDate = DateAdd("yyyy", 19, dob)
If DateDiff("d", tempDate, Date) > 0 Then
tempDate = DateAdd("yyyy", 25, dob)
If DateDiff("d", tempDate, Date) > 0 Then
GetAge = 3
Else
GetAge = 2
End If
Else
GetAge = 1
End If
Else
GetAge = 0
End If
End If
End Function
注意:
-1 : Error in DOB
0 : child
1 : Teens
2 : Youth
3 : Senior
答案 0 :(得分:1)
尝试类似:
if dateserial(year(dob) + 25, month(dob), day(dob)) > now then