Computing the age of a person?

Peter Brigham MD pmbrig at gmail.com
Thu May 14 18:06:12 EDT 2009


Here's what I use:

function doAge bd,asOf
   -- bd = birthdate in short date form
   -- asOf = (optional) short date
   --    age is calculated as of date "asOf"
   --    or as of today if omitted
   if sws(bd) = "" then
     return ""
   end if
   if asOf = "" then
       put the short date into asOf
   end if
   -- first, get full year (yyyy) for each date
   -- I found the centuryCutoff property unreliable
   put getFullYr(bd) into actualBdYr
   put getFullYr(asOf) into actualNowYr
   convert bd to dateItems
   put actualBdYr into item 1 of bd
   convert asOf to dateItems
   put actualNowYr into item 1 of asOf
   put item 1 of bd into bYr
   put item 2 of bd into bMo
   put item 3 of bd into bDy
   put item 1 of asOf into nYr
   put item 2 of asOf into nMo
   put item 3 of asOf into nDy
   if bDy > nDy then subtract 1 from nMo
   if bMo > nMo then subtract 1 from nYr
   put nYr - bYr into age
   return age
end doAge

function getFullYr tDate
   -- works only for people < 100 years old
   set the itemDelimiter to "/"
   put the last item of tDate into yr
   if the number of chars of yr = 2 then
     if yr >= last item of the short date then
       put "19" before yr
     else
       put "20" before yr
     end if
   end if
   return yr
end getFullYr

function sws str
   -- "strip whitespace"
   return word 1 to -1 of str
end sws

----------------------

On 5/14/09, "klaus at major.on-rev.com"  wrote:

Hi all,

I could need a hint on how to compute the age of a person when I have  
the birthday. The "convert to seconds" and "subtract"ion part is easy,  
but how to proceed? :-)

Thanks in advance!

Best

Klaus



More information about the use-livecode mailing list