模块:Astrology

星臣讨论 | 贡献2017年1月16日 (一) 03:15的版本 (创建页面,内容为“local p = {} local getArgs = require('Module:Arguments').getArgs function p._convert(args) local month = tonumber(args[1]) local day = tonumber(args[2]) if mont...”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

该模块可以免去人工计算星座的麻烦。

使用方法

{{#invoke:Astrology|convert|月|日}}

例: {{#invoke:Astrology|convert|01|08}} 摩羯座


local p = {}

local getArgs = require('Module:Arguments').getArgs

function p._convert(args)
	local month = tonumber(args[1])
	local day = tonumber(args[2])
	if month == nil or day == nil then
		error('调用模板或模块的参数错误')
	end
	local combined = string.format('%02d%02d', month, day)
	if combined < '0121' then
		return '摩羯座'
	elseif combined < '0220' then
		return '水瓶座'
	elseif combined < '0321' then
		return '双鱼座'
	elseif combined < '0421' then
		return '白羊座'
	elseif combined < '0522' then
		return '金牛座'
	elseif combined < '0622' then
		return '双子座'
	elseif combined < '0723' then
		return '巨蟹座'
	elseif combined < '0823' then
		return '狮子座'
	elseif combined < '0923' then
		return '处女座'
	elseif combined < '1024' then
		return '天秤座'
	elseif combined < '1123' then
		return '天蝎座'
	elseif combined < '1222' then
		return '射手座'
	else
		return '摩羯座'
	end

end

function p.convert(frame)
	local args = getArgs(frame, {wrappers='Template:Astrology'})
	return p._convert(args)
end

return p