Module:Deathage: Difference between revisions

From Catpedia
(Created page with "-- DeathAgeDayMonthYear.lua local p = {} function p.formatDate(frame) local day = frame.args[1] or 1 local month = frame.args[2] or 1 local year = frame.args[3] or 1970 return mw.getContentLanguage():formatDate('j F Y', string.format('%d-%d-%d', year, month, day)) end function p.calculateAge(frame) local day = tonumber(frame.args[1]) or 1 local month = tonumber(frame.args[2]) or 1 local year = tonumber(frame.args[3]) or 1970 local curr...")
 
No edit summary
Line 1: Line 1:
-- DeathAgeDayMonthYear.lua
local p = {}
local p = {}
function p.formatDate(frame)
function p.formatDate(frame)
     local day = frame.args[1] or 1
     local day = frame.args[1] or 1
Line 9: 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 day = tonumber(frame.args[1]) or 1
     local day = tonumber(frame.args[1]) or 1
     local month = tonumber(frame.args[2]) or 1
     local month = tonumber(frame.args[2]) or 1
     local year = tonumber(frame.args[3]) or 1970
     local year = tonumber(frame.args[3]) or 1970
     local currentDay = tonumber(mw.getCurrentFrame():callParserFunction('#time', 'j'))
     local currentDay = tonumber(mw.getCurrentFrame():callParserFunction('#time', 'j'))
     local currentMonth = tonumber(mw.getCurrentFrame():callParserFunction('#time', 'n'))
     local currentMonth = tonumber(mw.getCurrentFrame():callParserFunction('#time', 'n'))
     local currentYear = tonumber(mw.getCurrentFrame():callParserFunction('#time', 'Y'))
     local currentYear = tonumber(mw.getCurrentFrame():callParserFunction('#time', 'Y'))
     local age = currentYear - year
     local age = currentYear - year
     if (currentMonth < month) or (currentMonth == month and currentDay < day) then
     if (currentMonth < month) or (currentMonth == month and currentDay < day) then
         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 32: Line 24:
     return string.format('%s (aged %d)', date, age)
     return string.format('%s (aged %d)', date, age)
end
end
return p
return p

Revision as of 19:05, 7 June 2024

Documentation for this module may be created at Module:Deathage/doc

local p = {}
function p.formatDate(frame)
    local day = frame.args[1] or 1
    local month = frame.args[2] or 1
    local year = frame.args[3] or 1970
    return mw.getContentLanguage():formatDate('j F Y', string.format('%d-%d-%d', year, month, day))
end
function p.calculateAge(frame)
    local day = tonumber(frame.args[1]) or 1
    local month = tonumber(frame.args[2]) or 1
    local year = tonumber(frame.args[3]) or 1970
    local currentDay = tonumber(mw.getCurrentFrame():callParserFunction('#time', 'j'))
    local currentMonth = tonumber(mw.getCurrentFrame():callParserFunction('#time', 'n'))
    local currentYear = tonumber(mw.getCurrentFrame():callParserFunction('#time', 'Y'))
    local age = currentYear - year
    if (currentMonth < month) or (currentMonth == month and currentDay < day) then
        age = age - 1
    end
    return age
end
function p.displayDateWithAge(frame)
    local date = p.formatDate(frame)
    local age = p.calculateAge(frame)
    return string.format('%s (aged %d)', date, age)
end
return p