模块:年份朝代映射

来自西南古代物产

此模块的文档可以在模块:年份朝代映射/doc创建

-- Module:年份朝代映射
local p = {}

local dynastyMap = {
    {start = -2070, ["end"] = -1600, name = "夏朝"},
    {start = -1600, ["end"] = -1046, name = "商朝"},
    {start = -1046, ["end"] = -771, name = "西周"},
    {start = -770, ["end"] = -476, name = "春秋时期"},
    {start = -475, ["end"] = -221, name = "战国时期"},
    {start = -221, ["end"] = -207, name = "秦朝"},
    {start = -202, ["end"] = 8, name = "西汉"},
    {start = 9, ["end"] = 23, name = "新莽"},
    {start = 25, ["end"] = 220, name = "东汉"},
    {start = 220, ["end"] = 280, name = "三国时期"},
    {start = 265, ["end"] = 316, name = "西晋"},
    {start = 317, ["end"] = 420, name = "东晋"},
    {start = 420, ["end"] = 589, name = "南北朝"},
    {start = 581, ["end"] = 618, name = "隋朝"},
    {start = 618, ["end"] = 907, name = "唐朝"},
    {start = 907, ["end"] = 960, name = "五代十国"},
    {start = 960, ["end"] = 1127, name = "北宋"},
    {start = 1127, ["end"] = 1279, name = "南宋"},
    {start = 1271, ["end"] = 1368, name = "元朝"},
    {start = 1368, ["end"] = 1644, name = "明朝"},
    {start = 1636, ["end"] = 1912, name = "清朝"},
    {start = 1912, ["end"] = 1949, name = "中华民国"},
    {start = 1949, ["end"] = 3000, name = "中华人民共和国"},
}

p["获取朝代信息"] = function(frame)
    local year = tonumber(frame.args[1])
    if not year then
        return "错误:请输入有效的年份"
    end
    
    local dynasty = "未知"
    for _, period in ipairs(dynastyMap) do
        if year >= period.start and year <= period["end"] then
            dynasty = period.name
            break
        end
    end
    
    local yearString
    if year < 0 then
        yearString = string.format("公元前%d", math.abs(year))
    else
        yearString = tostring(year)
    end
    
    -- 返回修改后的格式,不包括分类部分
    local result = string.format("%s,%s", dynasty, yearString)

    -- 返回结果,不附加任何分类信息
    return result
end

return p