Iän laskeminen

Monet Visual Basic-koodaajat ovat kyselleet minulta mikä on "oikea" tapa laskea jonkun ikä. Se että minulta tätä paljon kysellään, johtunee siitä että näilläkin www-sivuilla on ikää useammassa paikassa laskettu :-).

Varsinkin ASP-sivujen tekijöillä tuntuu olevan vaikeuksia saada vuosiluku laskettua oikein. Ja siitä on tyypillisesti seurannut oikein kunnon spagettikoodia If-lauseineen. Ohessa eräs yksinkertainen tapa VBS-funktion muodossa.  

 
Function calcAge(BirthDate)
' Vähennetään nykyisestä päiväyksestä annettu ja lisätään
' 0 tai -1 sen mukaan onko syntymäpäivät tulossa tänä vuonna
' vai menikö ne jo. Näin saadaan vuosi oikein kaikissa tapauksissa
 
calcAge = DateDiff("yyyy", BirthDate, Date) +_
 (Date < DateSerial(Year(Date), Month(BirthDate), Day(BirthDate)))

End Function	' calcAge