模組:SuiStar
外观
|
请对照以下删除理由判断本页是否具备执行快速删除的理据:
本页可能符合快速删除的標準而需删除,理由:
請勿移除本模板。如有異議,請在本模板下方加入 其他編者若認為本頁明顯不符合快速删除的标准,或者您已修正存在的問題,可去除此模板。 |
本模块实现中国岁星纪年体系的计算,包含木星真实黄经推算、岁星所躔(十二次·十二辰·二十八宿)判定,以及核心的经说/今说双轨制太岁算法。模块为自包含设计,不依赖其他模块。
概述
[编辑]时区默认 UTC+8:
- 岁星几何:木星视黄经、日行速度
- 岁星所躔:所在十二次、十二辰、入二十八宿及距度
- 经说(古籍本义):太岁 = 岁星所居辰(同辰系),配岁阴、岁阳、岁名全称
- 今说(现代反推):太岁 = 岁星对冲辰(辰+6 位),虚拟太阴
- 交叉与分野:十二次配国(分野)、岁建/岁破
参数说明
[编辑]所有公开接口均接受以下 frame.args 参数:
| 参数 | 含义 | 类型 | 默认 |
|---|---|---|---|
year |
年份 | 数字 | 当前年 |
month |
月份(1–12) | 数字 | 当前月 |
day |
日期(1–31) | 数字 | 当日 |
hour |
小时(0–23,UTC+8) | 数字 | 12 |
mode |
输出模式(仅 short 接口),可选值:both(经说+今说)、jing(仅经说)、jin(仅今说)。 |
字符串 | both
|
track |
别名版本(erya/shiji),可选值:erya(《尔雅·释天》系)、shiji(《史记·历书》异文系)。 |
字符串 | erya
|
字段清单(供 p.get 调用)
[编辑]岁星几何位置
[编辑]| 字段 | 含义 | 单位 |
|---|---|---|
jupiter_lon |
木星视黄经 | ° |
jupiter_speed |
木星日行速度 | °/日 |
岁星所躔(经今同)
[编辑]| 字段 | 含义 |
|---|---|
sui_xingci |
岁星所在十二次 |
sui_chen |
岁星所在十二辰 |
sui_xiu |
岁星所入二十八宿 |
sui_xiu_in_deg |
入宿距度 |
经说(古籍本义)
[编辑]| 字段 | 含义 |
|---|---|
jingshuo_taisui_chen |
太岁所值辰(= 岁星所居辰,同辰系) |
jingshuo_suiyin |
岁阴(十二辰别名) |
jingshuo_suiyang |
岁阳(十干别名) |
jingshuo_nianhao |
岁名全称(岁阳+岁阴) |
jingshuo_source |
出处与算法说明 |
今说(现代反推)
[编辑]| 字段 | 含义 |
|---|---|
jinshuo_taisui_chen |
太岁所值辰(= 岁星对冲辰,辰+6) |
jinshuo_suiyin |
岁阴 |
jinshuo_nianhao |
岁名全称 |
jinshuo_note |
对冲原理说明 |
交叉与分野
[编辑]| 字段 | 含义 |
|---|---|
xingfen |
岁星所在次分野之国 |
jian_chu |
岁建 / 岁破 |
公开接口
[编辑]| 接口 | 说明 | 示例 |
|---|---|---|
p.compute |
内部主计算,返回全部字段表 | — |
p.get |
取任意单个字段 | {{#invoke:SuiStar|get|param=jingshuo_nianhao}}
|
p.getJD |
取指定时刻儒略日 | {{#invoke:SuiStar|getJD|year=2026}}
|
p.infoBox |
完整信息框(全面版) | {{#invoke:SuiStar|infoBox|year=2026}}
|
p.short |
简洁文本(mode=both/jing/jin) | {{#invoke:SuiStar|short|year=2026|mode=both}}
|
p.suiTable |
经说/今说对照表 | {{#invoke:SuiStar|suiTable|year=2026}}
|
示例
[编辑]- 岁星所在次:
{{#invoke:SuiStar|get|param=sui_xingci}}→ 鹑首 - 经说岁名:
{{#invoke:SuiStar|get|param=jingshuo_nianhao}}→ 旃蒙协洽 - 今说岁名:
{{#invoke:SuiStar|get|param=jinshuo_nianhao}}→ 旃蒙赤奋若 - 简洁文本(双轨):
{{#invoke:SuiStar|short|year=2026|mode=both}}→ 岁星在鹑首(未)· 入虚宿8.57°;经说太岁在未(旃蒙协洽),今说太岁在丑(旃蒙赤奋若);分野秦 - 经说/今说对照表:
{{#invoke:SuiStar|suiTable|year=2026}}→
| 经说(古籍本义) | 今说(现代反推) |
|---|---|
| 太岁在『未』 旃蒙协洽 |
太岁在『丑』 旃蒙赤奋若 |
| 经说:太岁左行、岁星右行;太岁辰 = 岁星所居辰(同辰系,《史记·天官书》《淮南子·天文训》本义) 今说:太岁 = 岁星对冲辰(黄经+180°,辰+6 位),现代天文反推之虚拟太阴 | |
- 取儒略日:
{{#invoke:SuiStar|getJD|year=2026|month=10|day=23|hour=12}}→ 2461337 - 完整信息框:
{{#invoke:SuiStar|infoBox|year=2026|month=10|day=23|track=erya}}→
模板
[编辑]本模块配套两个模板。
全面版:完整岁星信息框,包含岁星位置、经说今说双轨太岁、分野、岁建岁破。
{{SuiStarall}}
- 调用:
{{SuiStarall|year=2026|month=10|day=23|hour=12|track=erya}} - 参数:
year/month/day/hour(可选,默认当前时间)、track(erya/shiji,默认erya)
简洁版:输出一行核心结论,可切换经说/今说/双轨。
{{SuiStarJJ}}
- 调用:
{{:SuiStarJJ|year=2026|mode=both|track=erya}} - 参数:
year/month/day/hour(可选)、mode(both/jing/jin,默认both)、track(默认erya)
算法说明
[编辑]木星黄经
[编辑]采用 VSOP87 思路的截断近似:平黄经(起算 34.3515°,速率 3034.9057°/世纪)叠加 6 项主要周期项,精度约 ±0.1°,足以判定十二次与二十八宿。
经说(同辰系)
[编辑]太岁左行、岁星右行。岁星位于某辰,太岁即居同辰。这是《史记·天官书》《淮南子·天文训》的本义。
今说(对冲系)
[编辑]太岁 = 岁星对冲辰,即黄经 +180°,十二辰 +6 位。此为现代天文反推的虚拟太阴模型,与古籍本义有 6 辰之差,两者不可混用。
超辰
[编辑]木星恒星周期约 11.8622 年,非整 12 年,故约每 86 年出现一次超辰(岁星越过一辰),古历有相应处置。本模块按瞬时位置判定,不内置超辰校正,长期纪年推算需另行处理。
分野
[编辑]十二次各配一国:析木—燕、星纪—吴越、玄枵—齐、娵訾—卫、降娄—鲁、大梁—赵、实沈—晋、鹑首—秦、鹑火—周、鹑尾—楚、寿星—郑、大火—宋。
别名版本对照
[编辑]| 干支/辰 | 《尔雅》 | 《史记》 |
|---|---|---|
| 甲 | 阏逢 | 焉逢 |
| 乙 | 旃蒙 | 端蒙 |
| 寅 | 摄提格 | 摄提格 |
| 卯 | 单阏 | 单阏 |
| 巳 | 大荒落 | 大芒落 |
| 未 | 协洽 | 叶洽 |
| 酉 | 作噩 | 作鄂 |
| 戌 | 阉茂 | 淹茂 |
注意事项
[编辑]- 时区默认 UTC+8,跨时区请自行换算。
- 经说与今说结果可能相差 6 辰,引用时务必注明采用哪一体系。
track=shiji仅影响岁阳、岁阴别名用字,不影响太岁所在辰的判定。- 模块为自包含,不依赖
Module:SunXiu,可与太阳模块独立运作。
require('Module:Module wikitext')._addText('{{D|G3|G21|见[[U:12З4567/Wenlongtian调查]]}}')
-- Module:SuiStar 岁星纪年体系(独立模块,不依赖 SunXiu)
-- 双轨制:经说(古籍本义,太岁=岁星所居辰·同辰系)| 今说(现代反推,太岁=岁星对冲辰)
local p = {}
------------------------------------------------------------------
-- ===================== 静态数据 ================================
------------------------------------------------------------------
local XINGCI = {
{name="析木",lon0=270,lon1=300,chen="寅",xiu="尾、箕",guo="燕"},
{name="星纪",lon0=300,lon1=330,chen="丑",xiu="斗、牛",guo="吴越"},
{name="玄枵",lon0=330,lon1=360,chen="子",xiu="女、虚、危",guo="齐"},
{name="娵訾",lon0=0, lon1=30, chen="亥",xiu="室、壁",guo="卫"},
{name="降娄",lon0=30, lon1=60, chen="戌",xiu="奎、娄",guo="鲁"},
{name="大梁",lon0=60, lon1=90, chen="酉",xiu="胃、昴、毕",guo="赵"},
{name="实沈",lon0=90, lon1=120,chen="申",xiu="觜、参",guo="晋"},
{name="鹑首",lon0=120,lon1=150,chen="未",xiu="井、鬼",guo="秦"},
{name="鹑火",lon0=150,lon1=180,chen="午",xiu="柳、星、张",guo="周"},
{name="鹑尾",lon0=180,lon1=210,chen="巳",xiu="翼、轸",guo="楚"},
{name="寿星",lon0=210,lon1=240,chen="辰",xiu="角、亢",guo="郑"},
{name="大火",lon0=240,lon1=270,chen="卯",xiu="氐、房、心",guo="宋"},
}
local CHEN_ORDER = {"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"}
-- 岁阴(十二辰别名):尔雅 / 史记异文
local SUIYIN = {
erya = {["子"]="困敦",["丑"]="赤奋若",["寅"]="摄提格",["卯"]="单阏",
["辰"]="执徐",["巳"]="大荒落",["午"]="敦牂",["未"]="协洽",
["申"]="涒滩",["酉"]="作噩",["戌"]="阉茂",["亥"]="大渊献"},
shiji = {["子"]="困敦",["丑"]="赤奋若",["寅"]="摄提格",["卯"]="单阏",
["辰"]="执徐",["巳"]="大芒落",["午"]="敦牂",["未"]="叶洽",
["申"]="涒滩",["酉"]="作鄂",["戌"]="淹茂",["亥"]="大渊献"},
}
-- 岁阳(十干别名):尔雅 / 史记异文
local SUIYANG = {
erya = {["甲"]="阏逢",["乙"]="旃蒙",["丙"]="柔兆",["丁"]="强圉",
["戊"]="著雍",["己"]="屠维",["庚"]="上章",["辛"]="重光",
["壬"]="玄黓",["癸"]="昭阳"},
shiji = {["甲"]="焉逢",["乙"]="端蒙",["丙"]="游兆",["丁"]="彊梧",
["戊"]="徒维",["己"]="祝犁",["庚"]="商横",["辛"]="横艾",
["壬"]="玄黓",["癸"]="尚章"},
}
-- 算法说明
local ALGO_NOTE = {
jingshuo = "经说:太岁左行、岁星右行;太岁辰 = 岁星所居辰(同辰系,《史记·天官书》《淮南子·天文训》本义)",
jinshuo = "今说:太岁 = 岁星对冲辰(黄经+180°,辰+6 位),现代天文反推之虚拟太阴",
}
-- 二十八宿名称(用于日期值宿计算)
local XIU_NAME = {"角","亢","氐","房","心","尾","箕","斗","牛","女","虚","危","室","壁",
"奎","娄","胃","昴","毕","觜","参","井","鬼","柳","星","张","翼","轸"}
------------------------------------------------------------------
-- ===================== 工具函数 ================================
------------------------------------------------------------------
local function mod360(x) return x - math.floor(x/360)*360 end
local function round(v,n) n=n or 2; local p=10^n; return math.floor(v*p+0.5)/p end
local function jdFromDate(y,m,d,h)
h = h or 12
if m <= 2 then y=y-1; m=m+12 end
local a = math.floor(y/100)
local b = 2 - a + math.floor(a/4)
return math.floor(365.25*(y+4716)) + math.floor(30.6001*(m+1)) + d + b - 1524.5 + h/24
end
------------------------------------------------------------------
-- ===================== 木星位置(VSOP87 截断) =================
-- 日心平黄经 + 主要周期项,精度约 ±0.1°
------------------------------------------------------------------
local function jupiterLon(jd)
local T = (jd - 2451545.0) / 36525.0
local L0 = 34.3515
local L1 = 3034.9057 -- 度/儒略世纪
local L = L0 + L1*T
-- 主要周期项(幅度°, 相位°, 角速率°/世纪)
local terms = {
{ 0.3314, 0.0, 529.6910},
{ 0.1385, 17.4, 1059.3820},
{ 0.0900, 46.0, 1589.0730},
{ 0.0488, 82.0, 2118.7640},
{ 0.0242,109.0, 2648.455},
{ 0.0138,126.0, 3178.146},
}
for _,t in ipairs(terms) do
L = L + t[1]*math.cos(math.rad(t[2] + t[3]*T))
end
return mod360(L)
end
local function jupiterSpeed(lon, lonPrev)
return mod360(lon - lonPrev) -- 每日行度
end
------------------------------------------------------------------
-- ===================== 投影函数 ================================
------------------------------------------------------------------
local function lonToXingci(lon)
for _,x in ipairs(XINGCI) do
local lo,hi = x.lon0, x.lon1
if lo > hi then hi = hi + 360 end -- 跨 0°
local l = lon
if l < lo then l = l + 360 end
if l >= lo and l < hi then
local inDeg = l - lo
return {name=x.name, chen=x.chen, xiu=x.xiu, guo=x.guo, inDeg=inDeg, lon0=lo%360, lon1=hi%360}
end
end
return {name=XINGCI[1].name, chen=XINGCI[1].chen, xiu=XINGCI[1].xiu, guo=XINGCI[1].guo, inDeg=0}
end
local function chenIndex(c)
for i,cc in ipairs(CHEN_ORDER) do if cc == c then return i end end
return 1
end
-- 二十八宿(等距简化映射,宿度取整数)
local XIU_DEG = {12,9,15,5,5,18,11,26,8,12,10,17,16,9,16,12,14,11,16,2,9,33,4,15,7,18,18,17}
local function lonToXiu(lon)
local acc = 0
for i=1,28 do
if lon >= acc and lon < acc + XIU_DEG[i] then
return XIU_NAME[i], lon - acc, acc
end
acc = acc + XIU_DEG[i]
end
return XIU_NAME[28], lon - acc, acc
end
------------------------------------------------------------------
-- ===================== 双轨算法 ================================
------------------------------------------------------------------
local function jingShuo(suiChen)
-- 经说·同辰系:太岁 = 岁星所居辰
return suiChen
end
local function jinShuo(suiChen)
-- 今说·对冲:辰 +6 位
local i = chenIndex(suiChen)
return CHEN_ORDER[((i+5) % 12) + 1]
end
-- 岁名全称:岁阳 + 岁阴(基于太岁辰 + 干支轮)
local GAN = {"甲","乙","丙","丁","戊","己","庚","辛","壬","癸"}
local ZHI = CHEN_ORDER
local function suiYearName(taisuiChen, year, track)
track = track or "erya"
local zhiIdx = chenIndex(taisuiChen) - 1
local ganIdx = (year - 4) % 10 -- 公元4年为甲子
if ganIdx <= 0 then ganIdx = ganIdx + 10 end
local suiYang = SUIYANG[track][GAN[ganIdx]]
local suiYin = SUIYIN[track][taisuiChen]
return (suiYang or "") .. (suiYin or "")
end
------------------------------------------------------------------
-- ===================== 主计算 ================================
------------------------------------------------------------------
local function compute(args)
-- [改] 获取当前北京时间(UTC+8)作为默认值
local utc_now = os.date("!*t") -- 当前UTC时间
local bj_now = os.date("*t", os.time(utc_now) + 8 * 3600) -- 转为北京时间
local y = tonumber(args.year) or bj_now.year
local m = tonumber(args.month) or bj_now.month
local d = tonumber(args.day) or bj_now.day
local bj_h = tonumber(args.hour) or bj_now.hour -- 北京时间小时(显示用)
local track = args.track or "erya"
-- [改] 将北京时间转换为世界时(UT)用于天文计算
local ut_h = bj_h - 8
local ut_day = d
if ut_h < 0 then ut_h = ut_h + 24; ut_day = d - 1 end
if ut_h >= 24 then ut_h = ut_h - 24; ut_day = d + 1 end
local jd = jdFromDate(y, m, ut_day, ut_h)
local T = (jd - 2451545.0) / 36525.0
-- 平黄经
local L0 = 34.3515 + 3034.9057 * T
local period_sum = 0
local terms = {
{ 0.3314, 0.0, 529.6910},
{ 0.1385, 17.4, 1059.3820},
{ 0.0900, 46.0, 1589.0730},
{ 0.0488, 82.0, 2118.7640},
{ 0.0242,109.0, 2648.455},
{ 0.0138,126.0, 3178.146},
}
for _,t in ipairs(terms) do
period_sum = period_sum + t[1]*math.cos(math.rad(t[2] + t[3]*T))
end
local lon = mod360(L0 + period_sum)
local lonPrev = jupiterLon(jd - 1)
local speed = jupiterSpeed(lon, lonPrev)
local xc = lonToXingci(lon)
local xiuName, xiuIn = lonToXiu(lon)
-- 经说
local jc = jingShuo(xc.chen)
-- 今说
local nc = jinShuo(xc.chen)
-- 日期值宿(二十八宿循环,基准:2025-01-01 12:00 UT 为角宿)
local baseJD = jdFromDate(2025,1,1,12)
local offset = math.floor((jd - baseJD) % 28 + 56) % 28 + 1 -- 确保正数
local zhi_xiu = XIU_NAME[offset]
-- ========== 新增:计算岁星赤纬与去极度 ==========
local eps = math.rad(23.4392911) -- 黄赤交角(约值)
local lambda = math.rad(lon)
local beta = 0 -- 岁星黄纬近似为0
local sin_dec = math.sin(beta)*math.cos(eps) + math.cos(beta)*math.sin(eps)*math.sin(lambda)
local dec_deg = math.deg(math.asin(sin_dec))
local quji = 90 - dec_deg -- 去极度(度)
-- ==============================================
local out = {
jd = jd,
T = T,
jupiter_L0 = round(L0,4),
jupiter_period_sum = round(period_sum,4),
jupiter_lon = round(lon,4),
jupiter_speed = round(speed,5),
sui_xingci = xc.name,
sui_chen = xc.chen,
sui_xiu = xiuName,
sui_xiu_in_deg = round(xiuIn,2),
-- 新增字段
sui_xiu_quji = round(quji,2),
sui_xiu_sysname = "《淮南子·天文训》距度",
-- 原有字段
jingshuo_taisui_chen = jc,
jingshuo_suiyin = SUIYIN[track][jc],
jingshuo_suiyang = SUIYANG[track][GAN[(((y-4)%10)<=0 and ((y-4)%10+10) or (y-4)%10)]],
jingshuo_nianhao = suiYearName(jc,y,track),
jingshuo_source = ALGO_NOTE.jingshuo,
jinshuo_taisui_chen = nc,
jinshuo_suiyin = SUIYIN[track][nc],
jinshuo_nianhao = suiYearName(nc,y,track),
jinshuo_note = ALGO_NOTE.jinshuo,
xingfen = xc.guo,
jian_chu = "岁建 " .. xc.chen .. " · 岁破 " .. jinShuo(xc.chen),
zhi_xiu = zhi_xiu,
-- [改] 存储北京时间(显示用),不再存UT小时
year = y, month = m, day = d, hour = bj_h,
}
return out
end
------------------------------------------------------------------
-- ===================== 渲染:全面信息框 ========================
------------------------------------------------------------------
local function infoBox(args)
local d = compute(args)
local out = {}
local function row(label, val, bg)
bg = bg or "#fafcff"
return '<tr style="background:' .. bg .. ';"><td style="width:96px;padding:6px 8px;font-weight:bold;background:#f1f4f6;border-right:1px solid #eaecf0;border-bottom:1px solid #eaecf0;">' .. label .. '</td><td style="padding:6px 8px;border-bottom:1px solid #eaecf0;">' .. val .. '</td></tr>'
end
-- [改] 直接用 d.hour(北京时间),标题标注 UTC+8
local timeStr = string.format("%04d-%02d-%02d %02d:00 UTC+8", d.year, d.month, d.day, d.hour)
table.insert(out, '<div style="width:300px;float:right;clear:right;margin:0 0 1em 1em;'..
'border:1px solid #a2a9b1;border-radius:10px;overflow:hidden;font-family:sans-serif;'..
'box-shadow:0 2px 6px rgba(0,0,0,.12);background:#fff;font-size:13px;line-height:1.5">')
-- 标题
table.insert(out, string.format(
'<div style="background:linear-gradient(90deg,#5b6abf,#8a94d6);color:#fff;padding:10px 12px;'..
'font-weight:bold;text-align:center;font-size:15px">岁星推算 · %s</div>', timeStr))
-- 核心结论(修改为与太阳模块一致的格式)
table.insert(out, string.format(
'<div style="padding:12px;text-align:center;background:#f0f2ff;border-bottom:1px solid #eaecf0">'..
'<div style="font-size:18px;font-weight:bold;color:#3d4a9e">岁星在【%s】之次(辰『%s』)</div>'..
'<div style="margin-top:4px">入宿距度 <b>%.2f°</b> · 去极度 <b>%.2f°</b></div>'..
'<div style="margin-top:4px;font-size:12px;color:#666">体系:%s · 今日值宿%s宿</div></div>',
d.sui_xingci, d.sui_chen, d.sui_xiu_in_deg, d.sui_xiu_quji, d.sui_xiu_sysname, d.zhi_xiu))
-- 表格开始
table.insert(out, '<table style="width:100%;border-collapse:collapse;">')
-- 1. 计算参数
table.insert(out, row("计算参数",
string.format("JD %.4f · T=%.6f<br/>平黄经 %.4f° · 周期项 %.4f°",
d.jd, d.T, d.jupiter_L0, d.jupiter_period_sum)))
-- 2. 岁星位置
table.insert(out, row("岁星位置",
string.format("真黄经 %.4f° · 日行 %.5f°<br/>在『%s』之次(辰%s)<br/>入【%s】宿 %.2f°",
d.jupiter_lon, d.jupiter_speed, d.sui_xingci, d.sui_chen, d.sui_xiu, d.sui_xiu_in_deg), "#f6f8fa"))
-- 3. 经说·太岁
table.insert(out, row("经说·太岁",
string.format("辰『%s』 · %s<br/>岁阴 %s · 岁阳 %s<br/><small>%s</small>",
d.jingshuo_taisui_chen, d.jingshuo_nianhao, d.jingshuo_suiyin, d.jingshuo_suiyang, d.jingshuo_source)))
-- 4. 今说·太岁
table.insert(out, row("今说·太岁",
string.format("辰『%s』 · %s<br/>岁阴 %s<br/><small>%s</small>",
d.jinshuo_taisui_chen, d.jinshuo_nianhao, d.jinshuo_suiyin, d.jinshuo_note), "#f6f8fa"))
-- 5. 分野
table.insert(out, row("分野", d.xingfen))
-- 6. 岁建/岁破
table.insert(out, row("岁建/岁破", d.jian_chu, "#f6f8fa"))
table.insert(out, '</table>')
table.insert(out, '</div>')
return table.concat(out)
end
------------------------------------------------------------------
-- ===================== 公开接口 ================================
------------------------------------------------------------------
function p.compute(args) return compute(args) end
function p.get(frame)
local args = frame.args
local d = compute(args)
local key = args.param or args[1]
if key and d[key] ~= nil then
if type(d[key]) == "number" then return round(d[key],5) end
return tostring(d[key])
end
return "未知参数:"..tostring(key)
end
function p.getJD(frame) return tostring(jdFromDate(tonumber(frame.args.year) or os.date("%Y"), tonumber(frame.args.month) or os.date("%m"), tonumber(frame.args.day) or os.date("%d"), tonumber(frame.args.hour) or 12)) end
function p.suiTable(frame)
local d = compute(frame.args)
local r = {}
table.insert(r,'{| class="wikitable" style="text-align:center;"')
table.insert(r,'|-')
table.insert(r,'! 经说(古籍本义) !! 今说(现代反推)')
table.insert(r,'|-')
table.insert(r,'| 太岁在『'..d.jingshuo_taisui_chen..'』<br>'..d.jingshuo_nianhao..' || 太岁在『'..d.jinshuo_taisui_chen..'』<br>'..d.jinshuo_nianhao)
table.insert(r,'|-')
table.insert(r,'| colspan="2" | '..d.jingshuo_source..'<br>'..d.jinshuo_note)
table.insert(r,'|}')
return table.concat(r,"\n")
end
function p.short(frame)
local d = compute(frame.args)
local mode = frame.args.mode or "both"
if mode == "jing" then
return "经说:太岁在"..d.jingshuo_taisui_chen.."("..d.jingshuo_nianhao.."),分野"..d.xingfen
elseif mode == "jin" then
return "今说:太岁在"..d.jinshuo_taisui_chen.."("..d.jinshuo_nianhao.."),分野"..d.xingfen
else
return "岁星在"..d.sui_xingci.."("..d.sui_chen..")· 入"..d.sui_xiu.."宿"..d.sui_xiu_in_deg.."°;经说太岁在"..d.jingshuo_taisui_chen.."("..d.jingshuo_nianhao.."),今说太岁在"..d.jinshuo_taisui_chen.."("..d.jinshuo_nianhao..");分野"..d.xingfen
end
end
function p.infoBox(frame) return infoBox(frame.args) end
return p