Jump to content

Module:Sandbox/CAS222222221

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 風中的刀劍 (talk | contribs) at 13:09, 10 September 2015. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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

local function dateCov(inp)
	local months = {'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'}
	
	-- Matches July 10, 2005
	for i, v in ipairs(months) do
		if string.find(inp, '^%a+ %d%d?, %d%d%d%d.*$') then else break end
		local pattern = '^(' .. v .. ' %d%d?, %d%d%d%d)(.*)$'
		if string.find(inp, pattern) then
			local _, _, a, b = string.find(inp, pattern)
			return mw.language.new('zh'):formatDate('Y年Mj日', a, nil) .. b
		end
	end

	-- Matches 10 July 2005
	for i, v in ipairs(months) do
		if string.find(inp, '^%d%d? %a+ %d%d%d%d.*$') then else break end
		local pattern = '^(%d%d? ' .. v .. ' %d%d%d%d)(.*)$'
		if string.find(inp, pattern) then
			local _, _, a, b = string.find(inp, pattern)
			return mw.language.new('zh'):formatDate('Y年Mj日', a, nil) .. b
		end
	end

	-- Matches 2005-07-10
	if string.find(inp, '^%d%d%d%d%-%d%d%-%d%d.*$') then
		local _, _, a, b = string.find(inp, '^(%d%d%d%d%-%d%d%-%d%d)(.*)$')
		return mw.language.new('zh'):formatDate('Y年Mj日', a, nil) .. b
	end

	-- Matches July 2005
	for i, v in ipairs(months) do
		if string.find(inp, '^%a+ %d%d%d%d.*$') then else break end
		local pattern = '^(' .. v .. ' %d%d%d%d)(.*)$'
		if string.find(inp, pattern) then
			local _, _, a, b = string.find(inp, pattern)
			return mw.language.new('zh'):formatDate('Y年M', a, nil) .. b
		end
	end

	-- Matches 2005-07
	if string.find(inp, '^%d%d%d%d%-%d%d.*$') then
		local _, _, a, b = string.find(inp, '(%d%d%d%d%-%d%d)(.*)')
		return mw.language.new('zh'):formatDate('Y年M', a, nil) .. b
	end
	
	return inp

end

function p.main(frame)
	local args = getArgs(frame)
	return p._main(args)
end

function p._main(args)
	-- Main module code goes here.
	return dateCov(args[1])
end

return p