4,595
edits
No edit summary |
No edit summary |
||
Line 85: | Line 85: | ||
--Calculates a persons age using the specified calendar | --Calculates a persons age using the specified calendar | ||
function p._age(args) | function p._age(args) | ||
birthDate = args[1] | |||
secondDate = args[2] | secondDate = args[2] | ||
status = args[3] | status = args[3] | ||
calendar = args[4] | calendar = args[4] | ||
--checks if | --checks if birthDate is not nil, and if it is returns the second date | ||
if | if birthDate ~= nil then | ||
birthDate = convertShortDate(birthDate, calendar) | |||
secondDate = convertShortDate(secondDate, calendar) | secondDate = convertShortDate(secondDate, calendar) | ||
elseif | elseif birthDate == nil then | ||
return writeDate(convertShortDate(secondDate)) | return writeDate(convertShortDate(secondDate)) | ||
end | end | ||
--Checks which math formula to use, based on how much of the date there is. | --Checks which math formula to use, based on how much of the date there is. | ||
if | if birthDate[4] == "year" or secondDate[4] == "year" then | ||
age = math.floor(secondDate[3] - | age = math.floor(secondDate[3] - birthDate[3]) | ||
elseif birthDate[4] == "month-year" or secondDate[4] == "month-year" then | |||
if birthDate[2] < secondDate[2] then | |||
age = math.floor(secondDate[3] - birthDate[3]) | |||
elseif birthDate[2] >= secondDate[2] then | |||
age = math.floor(secondDate[3] - birthDate[3] - 1) | |||
end | |||
elseif birthDate[4] == "month-day-year" or secondDate[4] == "month-day-year" then | |||
if birthDate[2] < secondDate[2] then | |||
age = math.floor(secondDate[3] - birthDate[3]) | |||
elseif birthDate[2] >= secondDate[2] then | |||
if birthDate[1] <= secondDate[1] then | |||
age = math.floor(secondDate[3] - birthDate[3]) | |||
elseif birthDate[1] > secondDate[1] then | |||
age = math.floor(secondDate[3] - birthDate[3] - 1) | |||
end | |||
end | |||
end | end | ||
--Determines if age or aged is required | --Determines if age or aged is required | ||
if status == "alive" then | if status == "alive" then | ||
return writeDate( | return writeDate(birthDate).." (age "..age..")" | ||
elseif status == "dead" then | elseif status == "dead" then | ||
return writeDate(secondDate).." (aged "..age..")" | return writeDate(secondDate).." (aged "..age..")" |