Module:Era

-- Get the name of an era, based on Wikisource's definition.  This implements the logic of Template:What era is -- require('strict')

local getArgs = require('Module:Arguments').getArgs local p = {}

function p.main(frame) local args = getArgs(frame, {		wrappers = {			'Template:What era is',		}	}) return p.era(args[1]) end

function p.era(year) -- Nil years need to trigger bailout before we do anything else. if year == nil then return 'Unknown era' end

--		The template (What era is) treated every year that failed to parse as		"Ancient", and years given as "BCE" fell into this category. With the		module logic this no loonger works, so we need to treat BCE years as		negative instead, so the numeric logic can deal wiith them.	-- if mw.ustring.match(year, ' BCE$') ~= nil then year = mw.ustring.gsub(year, ' BCE$', '') -- Strip the "BCE" year = '-' .. year -- And prepend a minus (we tonumber it later) end

-- Unknown value. if tonumber(year) == nil or mw.ustring.lower(year) == 'unknown' or year == '?' then return 'Unknown era' end

-- Handle numeric years. year = tonumber(year) local today = tonumber(os.date('%Y')) if year <= 600 then return 'Ancient' elseif year <= 1420 then return 'Medieval' elseif year <= 1630 then return 'Renaissance' elseif year <= 1900 then return 'Early modern' elseif year <= today then return 'Modern' else return 'Future' end end

return p