Documentation for this module may be created at ಮಾಡ್ಯೂಲ್:Date/doc

--[[  
 
This module is intended for processing of date strings
 
]]
 
local date = {}

--[[
ISOyear
 
This function returns year part of date string.
 
Usage:
{{#invoke:Date|ISOyear|s=target_string}}
 
Parameters
    s: The date string 
 
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from the target string.  
]]
function date.ISOyear( frame )
    local s = frame.args.s
    
    -- if empty string then return it
    if mw.ustring.len(s) == 0 then
        return s
    end
    
    -- if number then return it
    if tonumber( s ) then
        return mw.ustring.format('%04i', s)
    end
    
    -- otherwise use regular expression match
    s = mw.ustring.match( s, '(-?%d%d?%d?%d?)-' )
    if s then
       return mw.ustring.format('%04i', s)
    else
        return ''
    end
end

--[[
Get the name of an era, based on Wikisource's definition.
This implements the logic of Template:What_era_is
]]
function date.era( year )
	-- Unknown value.
	if year == nil or tonumber( year ) == nil or string.lower( year ) == 'unknown' or year == '?' then
		return 'Unknown era'
	end

	-- Handle numeric years.
	year = tonumber( year )
	if year == nil or year < 601 then
		return 'Ancient'
	elseif year < 1421 then
		return 'Medieval'
	elseif year < 1631 then
		return 'Renaissance'
	elseif year < 1900 then
		return 'Early modern'
	elseif year < ( tonumber( os.date( '%Y' ) ) + 1 ) then
		return 'Modern'
	else
		return 'Future'
	end
end


return date