Calculate current age in years and months in ASP

I received help for getting the current age in years and months for .NET but now I need it for classic ASP.  I can't figure out how to convert this code to classic ASP.

``````  Dim dt1, dt2 As Date
dt1 = DOB
dt2 = now
Dim Months As Long
Dim Diff As Long = DateDiff(DateInterval.Month, dt1, dt2)
Dim Years As Long = Diff \ 12
Months = Diff - Years * 12
formatAge = Years & " y  " & Months & " m "
``````
Who is Participating?

Commented:
Simply replacing "/" is not going to work.
Since this is classic ASP, variables will not have data type. Here is the updated script:

``````<%
Dim dt1, dt2
dt1 = "17/4/2005"
dt2 = Date()
Dim Months
Dim Diff
Dif = DateDiff("m", dt1, dt2)
Dim Years
Years = cint(Dif / 12)

Months = Dif - Years * 12
formatAge = Years & " y  " & Months & " m "
response.write formatAge
%>
``````
0

IT Security Analyst SeniorCommented:
Hmm  something does not look right..

1 / 2 should be .5..

You need to change:
Dim Years As Long = Diff \ 12

to be:
Dim Years As Long = Diff / 12

HTH,

Kent
0

Developer & EE ModeratorCommented:
This is an easy way to use the same code multiple times in your page or for loops.

``````function formatAge(x)
formatAge="No date given"
if isdate(x) then
Months=DateDiff("m", x, date)
Years=    int(Months / 12)
Months=  Months - Years * 12
formatAge= Years &" Y "& Months & " M"
end if
end function

' now play
response.write formatAge("1/18/1998")
response.write formatAge("xyz") ' will output "No date given"
y=1998
for x = 1 - 12
response.write formatAge("5/15/"&x+y)&"<br>"
next
``````
0

Author Commented:
Sorry for the delay.  I haven't had a chance to test to make sure I get the correct answer in my program but your code works.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.