4,599
edits
No edit summary |
No edit summary Tag: Manual revert |
||
| (12 intermediate revisions by the same user not shown) | |||
| Line 38: | Line 38: | ||
--Takes a short form date and converts it to a long form, and marks if it is only a year, or a month and year | --Takes a short form date and converts it to a long form, and marks if it is only a year, or a month and year | ||
function convertShortDate( | function convertShortDate(shortDate, calendar) | ||
--In place of a long if elseif, I've put all the months into a single variable, with each in its numerical place. | --In place of a long if elseif, I've put all the months into a single variable, with each in its numerical place. | ||
--This also allows us to add other calendars here | --This also allows us to add other calendars here | ||
| Line 53: | Line 53: | ||
--Takes the provided variable and seperates it out into a table | --Takes the provided variable and seperates it out into a table | ||
--Also marks if it is only a year or a month and year | --Also marks if it is only a year or a month and year | ||
local shortDate = Split(shortDate, "-") | |||
if | if shortDate[2] == nil then | ||
dateTable = {nil, nil, nil, tonumber(shortDate[1]), "year"} | |||
elseif | elseif shortDate[3] == nil then | ||
dateTable = {monthNames[tonumber(shortDate[1])], tonumber(shortDate[1]), nil, tonumber(shortDate[2]), "month-year"} | |||
else | else | ||
dateTable = {monthNames[tonumber(shortDate[1])], tonumber(shortDate[1]), tonumber(shortDate[2]), tonumber(shortDate[3]), "month-day-year"} | |||
end | end | ||
return | return dateTable | ||
end | end | ||
--Writes that date based on what is given. | --Writes that date based on what is given. | ||
function writeDate( | function writeDate(dateTable) | ||
if | if dateTable[5] == "year" then | ||
return | return dateTable[4] | ||
elseif | elseif dateTable[5] == "month-year" then | ||
return | return dateTable[1].." ("..dateTable[2]..") "..dateTable[4] | ||
elseif | elseif dateTable[5] == "month-day-year" then | ||
return | return dateTable[1].." ("..dateTable[2]..") "..dateTable[3]..", "..dateTable[4] | ||
end | end | ||
end | end | ||
| Line 84: | Line 84: | ||
--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 = convertShortDate(args[1], args[4]) | local birthDate = convertShortDate(args[1], args[4]) | ||
secondDate = convertShortDate(args[2], args[4]) | local secondDate = convertShortDate(args[2], args[4]) | ||
status = args[3] | local status = args[3] | ||
--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. | ||
| Line 101: | Line 101: | ||
age = math.floor(secondDate[4] - birthDate[4]) | age = math.floor(secondDate[4] - birthDate[4]) | ||
elseif birthDate[2] == secondDate[2] then | elseif birthDate[2] == secondDate[2] then | ||
if | if birthDate[3] <= secondDate[3] then | ||
age = math.floor(secondDate[4] - birthDate[4]) | age = math.floor(secondDate[4] - birthDate[4]) | ||
elseif | elseif birthDate[3] > secondDate[3] then | ||
age = math.floor(secondDate[4] - birthDate[4] - 1) | age = math.floor(secondDate[4] - birthDate[4] - 1) | ||
end | end | ||
| Line 113: | Line 113: | ||
--Determines if age or aged is required | --Determines if age or aged is required | ||
if status == "alive" then | if status == "alive" then | ||
local longDate = writeDate(birthDate) | |||
return longDate.." (age "..age..")" | |||
elseif status == "dead" then | elseif status == "dead" then | ||
return writeDate(secondDate).." (aged "..age..")" | return writeDate(secondDate).." (aged "..age..")" | ||