This function takes two inputs: a string representation of the date of birth
and the uidoc where the field is located. In this example, age is the name of
the target field.
The function does return an integer value, so it can be accessed readily
through the following call:
age = getage(dob$, uidoc)
To use the code, just paste it in after the End Sub line of the calling script,
or tailor as you wish through script libraries.
If you have questions or problems, please feel free to contact me.
Function getage(temp_dob As String, uidoc As notesuidocument) As Integer
Dim message As String
Dim timenow As Variant
Dim dyear As Integer, nyear As Integer, dmonth As Integer, nmonth As Integer,
dday As Integer, nday As Integer
Dim age As Integer
'initialize values
Dim dob As Variant
dob = Datevalue(temp_dob)
timenow = Date
dyear = Year(dob)
nyear = Year(timenow)
dmonth = Month(dob)
nmonth = Month(timenow)
dday = Day(dob)
nday = Day(timenow)
If nmonth > dmonth Then
age = nyear - dyear
Elseif nmonth < dmonth Then
age = nyear - dyear - 1
Elseif nmonth = dmonth Then
If nday > dday Then
age = nyear - dyear
Elseif nday < dday Then
age = nyear - dyear - 1
Elseif dday = nday Then
age = nyear - dyear
End If
Else
message = "Unable to compute the person's age. Please enter it below."
age = Cint(Inputbox(message))
End If
Call uidoc.fieldsettext("Age",Cstr(age))
'doc.Age = Cstr(age)
'Call doc.save(True, True)
getage = Cint(age)
End Function
This was first published in November 2000