Module:FillDate

From Wikipedia, the free encyclopedia

-- Requested by [[User:Sdkb]]

-- Handles these 3 cases:
--     "2023" → "1 January 2023"
--     "March 2023" → "1 March 2023"
--     "14 March 2023" → "14 March 2023"

local p = {}

-- {{#invoke:FillDate|main|{{{1|}}}}}
function p.main(frame)
    local str = frame.args[1]
	-- "2023" → "1 January 2023"
	if string.match(str, '^%d%d%d%d$') then
		return '1 January ' .. str;
	-- "March 2023" → "1 March 2023"
	elseif string.match(str, '^[a-zA-Z]+ %d%d%d%d$') then
		return '1 ' .. str;
	-- "14 March 2023" → "14 March 2023"
	else
    	return str
	end
end

return p