More actions
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
function p.formatDate(frame) | function p.formatDate(frame) | ||
local day = tonumber(frame.args[4]) or 1 | local day = tonumber(frame.args[4]) or 1 | ||
Line 7: | Line 6: | ||
return mw.getContentLanguage():formatDate('j F Y', string.format('%d-%d-%d', year, month, day)) | return mw.getContentLanguage():formatDate('j F Y', string.format('%d-%d-%d', year, month, day)) | ||
end | end | ||
function p.calculateAge(frame) | function p.calculateAge(frame) | ||
local | local day = tonumber(frame.args[1]) or 1 | ||
local | local month = tonumber(frame.args[2]) or 1 | ||
local | local year = tonumber(frame.args[3]) or 1970 | ||
local | local currentDay = tonumber(mw.getCurrentFrame():callParserFunction('#time', 'j')) | ||
local | local currentMonth = tonumber(mw.getCurrentFrame():callParserFunction('#time', 'n')) | ||
local | local currentYear = tonumber(mw.getCurrentFrame():callParserFunction('#time', 'Y')) | ||
local age = currentYear - year | |||
local age = | if (currentMonth < month) or (currentMonth == month and currentDay < day) then | ||
if ( | |||
age = age - 1 | age = age - 1 | ||
end | end | ||
return age | return age | ||
end | end | ||
function p.displayDateWithAge(frame) | function p.displayDateWithAge(frame) | ||
local date = p.formatDate(frame) | local date = p.formatDate(frame) | ||
Line 29: | Line 24: | ||
return string.format('%s (aged %d)', date, age) | return string.format('%s (aged %d)', date, age) | ||
end | end | ||
return p | return p |