Jo det är så att jag har ett script som gör att man får ut någons ålder från datumet han är född men jag skulle vilja ha det med en decimal alltså typ 17,7 för nu visar den 17. Någon som kan hjälpa mig med detta?
<%
function formatAge(inDate)
inYear = int(left(inDate,4))
inMonth = int(right(left(inDate,6),2))
inDay = int(right(inDate,2))
nowYear = int(year(now))
nowMonth = int(month(now))
nowDay = int(day(now))
totYear = int(nowYear-inYear)
totMonth = int(nowMonth-inMonth)
totDay = int(nowDay-inDay)
if totMonth > int(-1) then
if totDay > int(-1) then
outAge = totYear
else
outAge = totYear-1
end if
else
outAge = totYear-1
end if
Response.Write(outAge)
end function
%>
Då kan du inte "sub-typa" dina variabler till int() eftersom alla dina variabler då blir heltal och således avrundas till närmaste heltal.
Själva uträkningen BÖR inte sub-typas
Du kan testa denna funktion som jag har:
<%
Function FormatAge(ByVal dDate)
'## -- koll om det finns ett argument --
If Len(dDate) = 0 OR IsNull(dDate) Then Exit Function
'## -- kolla så att argumentet är ett giltigt datum --
'If Not IsDate(dDate) Then Exit Function
Dim dteTotalYear
Dim dteTotalMonths
Dim dteDate
Dim dteTotalYears
dteDate = Date()
dteTotalYear = Year(dteDate) - Year(dDate)
dteTotalMonths = Month(dteDate) - Month(dDate)
dteTotalYears = dteTotalYear + (dteTotalMonths/12)
'## -- return correct age format --
FormatAge = FormatNumber(dteTotalYears,1)
End Function
Response.Write FormatAge(CDate("1900-01-01"))