dsh-metaphysics 0.62.3 → 0.62.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +108 -1
- package/README.md +2 -2
- package/client.almanac.js +1 -1
- package/client.bazi.js +127 -121
- package/client.chenggu.js +1 -1
- package/client.convert.js +1 -1
- package/client.daliuren.js +93 -87
- package/client.fengshui.js +1 -1
- package/client.hepan.js +126 -120
- package/client.js +19 -19
- package/client.liuyao.js +71 -65
- package/client.mbti.js +1 -1
- package/client.name.js +70 -70
- package/client.numerology.js +1 -1
- package/client.qimen.js +118 -112
- package/client.star.js +1 -1
- package/client.tarot.js +90 -84
- package/client.trend.js +117 -111
- package/client.xiaoliuren.js +1 -1
- package/client.zeri.js +1 -1
- package/client.ziwei.js +130 -124
- package/docs/assets/dsh-metaphysics-group.jpg +0 -0
- package/engine/bazi.js +71 -2
- package/engine/citations-fuwen.js +3294 -0
- package/engine/citations.js +1186 -205
- package/engine/diff.js +1 -1
- package/engine/geju.js +333 -2
- package/engine/interpret-knowledge.js +46 -10
- package/engine/interpret.js +46 -5
- package/engine/qimen.js +9 -0
- package/engine/qiongtong.js +25 -11
- package/engine/structure.js +218 -0
- package/engine/trace.js +3 -3
- package/package.json +1 -1
- package//345/221/275/347/220/206/346/216/222/347/233/230.html +1955 -251
package/client.mbti.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
window.__ModuleLoader__.load({id:"dsh-metaphysics",chunk:"client.mbti.js",factory($t){const R={};return R.fail=(function(){return{fail:(G,C)=>{const B=new Error(C);return B.code=G,B}}})(),R.bool=(function(){function _(s,u=!1){return s==null||s===""?u:s===!0||s===1||s==="true"||s==="1"?!0:s===!1||s===0||s==="false"||s==="0"?!1:u}const G={lateZi:!0,trueSolar:!0,dst:!0,isLeapMonth:!1,leapAsNext:!1,cross:!1,hourUnknown:!1,diff:!1,shadow:!1,trace:!1,rectify:!1,withInterpret:!1},C={lateZi:!0,trueSolar:!0,dst:!0,hourUnknown:!1};function B(s,u){let r=s;const E=($,m)=>{Object.is(s[$],m)||(r===s&&(r={...s}),r[$]=m)},g=$=>{r===s&&(r={...s}),delete r[$]};for(const[$,m]of Object.entries(u))if(s[$]!==void 0){if(typeof s[$]=="string"&&s[$].trim()===""){g($);continue}E($,_(s[$],m))}return r}function D(s){if(!s||typeof s!="object"||Array.isArray(s))return s;let u=s;for(const[r,E]of Object.entries(C)){if(s[r]===void 0)continue;if(typeof s[r]=="string"&&s[r].trim()===""){u===s&&(u={...s}),delete u[r];continue}const g=_(s[r],E);Object.is(s[r],g)||(u===s&&(u={...s}),u[r]=g)}return u}function x(s){if(!s||typeof s!="object")return s;let u=B(s,G);for(const r of["partner","partner2"]){const E=u[r],g=D(E);g!==E&&(u===s&&(u={...s}),u[r]=g)}return u}const T=["hour","minute","longitude","verifyPast","seed","days","lunarYear","lunarMonth","lunarDay","num1","num2","num3","upper","lower","changing","count","toAge","fortuneYear","period","limit","sittingOffset","sittingDegree","facingOffset","facingDegree","year","month","day"],P=["lines","rectifyHours","answers"],k=["strokeOverrides","surnameStrokes"],w=/^[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?$/;function f(s){if(typeof s!="string")return s;const u=s.trim();if(!w.test(u))return s;const r=Number(u);return Number.isFinite(r)?r:s}function N(s){let u=!1;const r={};for(const[E,g]of Object.entries(s)){const $=g===null?null:f(g);Object.is($,g)||(u=!0),r[E]=$}return u?r:s}function b(s){if(!s||typeof s!="object")return s;let u=s;const r=(E,g)=>{Object.is(s[E],g)||(u===s&&(u={...s}),u[E]=g)};for(const E of T)if(s[E]!==void 0){if(typeof s[E]=="string"&&s[E].trim()===""){u===s&&(u={...s}),delete u[E];continue}r(E,f(s[E]))}for(const E of P){const g=s[E];if(!Array.isArray(g))continue;let $=!1;const m=g.map(o=>{if(o===null)return null;if(typeof o=="string"&&o.trim()===""){$=!0;return}const h=f(o);return Object.is(h,o)||($=!0),h});$&&r(E,m)}for(const E of k){const g=s[E];!g||typeof g!="object"||Array.isArray(g)||r(E,N(g))}return u}return{bool:_,FLAG_DEFAULTS:G,canonicalFlags:x,NUMERIC_KEYS:T,NUMERIC_ARRAY_KEYS:P,NUMERIC_MAP_KEYS:k,canonicalNumbers:b}})(),R.diff=(function(){const{bool:_}=R.bool||{},G=new Set(["summary","interpret","castAt","asOf","precision","disclaimer","note","trueSolarText","civilText","offsetMinutes","input","jd","juMethod","juMethodNote","lateZiHourMode","leapPolicy","schools","bodyMasterSchool","bodyMasterNote","handle","handleError","revision","brief","briefError"]),C=o=>o!==null&&typeof o=="object";function B(o,h,c="",y=[]){if(o===h)return y;if(!C(o)||!C(h))return y.push({path:c||"(root)",from:o,to:h}),y;const j=new Set([...Object.keys(o),...Object.keys(h)]);for(const O of j){if(G.has(O))continue;const A=c?`${c}.${O}`:O,Y=o[O],v=h[O];C(Y)&&C(v)?B(Y,v,A,y):JSON.stringify(Y)!==JSON.stringify(v)&&y.push({path:A,from:Y,to:v})}return y}const D=[[/^pillars\.year\.ganzhi$/,"年柱"],[/^pillars\.month\.ganzhi$/,"月柱"],[/^pillars\.day\.ganzhi$/,"日柱"],[/^pillars\.hour\.ganzhi$/,"时柱"],[/^pillars\.\w+\.hidden/,"藏干"],[/^pillars\.\w+\.stemTenGod$/,"十神"],[/^pillars\.\w+\.kongwang/,"空亡"],[/^pillars\.\w+\.dishi$|^pillars\.\w+\.zizuo$/,"十二长生"],[/^pillars\.\w+\.nayin$/,"纳音"],[/^dayMaster\./,"日主"],[/^palaces\.(taiyuan|minggong|shengong)\./,"命身宫"],[/^palaces\.\d+\.(palace|branch|stem|ganzhi)$/,"宫位"],[/^palaces\.\d+\.stars\.\d+\.(name|brightness|type)$/,"星曜"],[/^palaces\.\d+\.shensha\./,"神煞"],[/^palaces\.\d+\.(daxian|xiaoxian)\./,"大限"],[/^palaces\.\d+\.sanfang\./,"三方四正"],[/^palaces\.\d+\./,"宫位"],[/^palaces\./,"命身宫"],[/^soul\./,"命宫"],[/^body\./,"身宫"],[/^doujun\./,"流年斗君"],[/^siZhu\.year$/,"年柱"],[/^siZhu\.month$/,"月柱"],[/^siZhu\.day$/,"日柱"],[/^siZhu\.time$/,"时柱"],[/^ju$|^juNumber$/,"局数"],[/^yuan$/,"三元"],[/^dun$/,"阴阳遁"],[/^daxian(List)?\./,"大限"],[/^fly(Chains|Composite)?\./,"飞星"],[/^pattern/,"格局"],[/^schools\./,"流派回显"],[/^dayun\.jiao\./,"起运"],[/^dayun\.toNextJieDays$/,"起运时间"],[/^dayun\.list\.(\d+)\.ganzhi$/,"大运干支"],[/^dayun\.startAge
|
|
1
|
+
window.__ModuleLoader__.load({id:"dsh-metaphysics",chunk:"client.mbti.js",factory($t){const R={};return R.fail=(function(){return{fail:(G,C)=>{const B=new Error(C);return B.code=G,B}}})(),R.bool=(function(){function _(s,u=!1){return s==null||s===""?u:s===!0||s===1||s==="true"||s==="1"?!0:s===!1||s===0||s==="false"||s==="0"?!1:u}const G={lateZi:!0,trueSolar:!0,dst:!0,isLeapMonth:!1,leapAsNext:!1,cross:!1,hourUnknown:!1,diff:!1,shadow:!1,trace:!1,rectify:!1,withInterpret:!1},C={lateZi:!0,trueSolar:!0,dst:!0,hourUnknown:!1};function B(s,u){let r=s;const E=($,m)=>{Object.is(s[$],m)||(r===s&&(r={...s}),r[$]=m)},g=$=>{r===s&&(r={...s}),delete r[$]};for(const[$,m]of Object.entries(u))if(s[$]!==void 0){if(typeof s[$]=="string"&&s[$].trim()===""){g($);continue}E($,_(s[$],m))}return r}function D(s){if(!s||typeof s!="object"||Array.isArray(s))return s;let u=s;for(const[r,E]of Object.entries(C)){if(s[r]===void 0)continue;if(typeof s[r]=="string"&&s[r].trim()===""){u===s&&(u={...s}),delete u[r];continue}const g=_(s[r],E);Object.is(s[r],g)||(u===s&&(u={...s}),u[r]=g)}return u}function x(s){if(!s||typeof s!="object")return s;let u=B(s,G);for(const r of["partner","partner2"]){const E=u[r],g=D(E);g!==E&&(u===s&&(u={...s}),u[r]=g)}return u}const T=["hour","minute","longitude","verifyPast","seed","days","lunarYear","lunarMonth","lunarDay","num1","num2","num3","upper","lower","changing","count","toAge","fortuneYear","period","limit","sittingOffset","sittingDegree","facingOffset","facingDegree","year","month","day"],P=["lines","rectifyHours","answers"],k=["strokeOverrides","surnameStrokes"],w=/^[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?$/;function f(s){if(typeof s!="string")return s;const u=s.trim();if(!w.test(u))return s;const r=Number(u);return Number.isFinite(r)?r:s}function N(s){let u=!1;const r={};for(const[E,g]of Object.entries(s)){const $=g===null?null:f(g);Object.is($,g)||(u=!0),r[E]=$}return u?r:s}function b(s){if(!s||typeof s!="object")return s;let u=s;const r=(E,g)=>{Object.is(s[E],g)||(u===s&&(u={...s}),u[E]=g)};for(const E of T)if(s[E]!==void 0){if(typeof s[E]=="string"&&s[E].trim()===""){u===s&&(u={...s}),delete u[E];continue}r(E,f(s[E]))}for(const E of P){const g=s[E];if(!Array.isArray(g))continue;let $=!1;const m=g.map(o=>{if(o===null)return null;if(typeof o=="string"&&o.trim()===""){$=!0;return}const h=f(o);return Object.is(h,o)||($=!0),h});$&&r(E,m)}for(const E of k){const g=s[E];!g||typeof g!="object"||Array.isArray(g)||r(E,N(g))}return u}return{bool:_,FLAG_DEFAULTS:G,canonicalFlags:x,NUMERIC_KEYS:T,NUMERIC_ARRAY_KEYS:P,NUMERIC_MAP_KEYS:k,canonicalNumbers:b}})(),R.diff=(function(){const{bool:_}=R.bool||{},G=new Set(["summary","interpret","castAt","asOf","precision","disclaimer","note","trueSolarText","civilText","offsetMinutes","input","jd","juMethod","juMethodNote","lateZiHourMode","leapPolicy","schools","bodyMasterSchool","bodyMasterNote","handle","handleError","revision","brief","briefError"]),C=o=>o!==null&&typeof o=="object";function B(o,h,c="",y=[]){if(o===h)return y;if(!C(o)||!C(h))return y.push({path:c||"(root)",from:o,to:h}),y;const j=new Set([...Object.keys(o),...Object.keys(h)]);for(const O of j){if(G.has(O))continue;const A=c?`${c}.${O}`:O,Y=o[O],v=h[O];C(Y)&&C(v)?B(Y,v,A,y):JSON.stringify(Y)!==JSON.stringify(v)&&y.push({path:A,from:Y,to:v})}return y}const D=[[/^pillars\.year\.ganzhi$/,"年柱"],[/^pillars\.month\.ganzhi$/,"月柱"],[/^pillars\.day\.ganzhi$/,"日柱"],[/^pillars\.hour\.ganzhi$/,"时柱"],[/^pillars\.\w+\.hidden/,"藏干"],[/^pillars\.\w+\.stemTenGod$/,"十神"],[/^pillars\.\w+\.kongwang/,"空亡"],[/^pillars\.\w+\.dishi$|^pillars\.\w+\.zizuo$/,"十二长生"],[/^pillars\.\w+\.nayin$/,"纳音"],[/^dayMaster\./,"日主"],[/^palaces\.(taiyuan|minggong|shengong)\./,"命身宫"],[/^palaces\.\d+\.(palace|branch|stem|ganzhi)$/,"宫位"],[/^palaces\.\d+\.stars\.\d+\.(name|brightness|type)$/,"星曜"],[/^palaces\.\d+\.shensha\./,"神煞"],[/^palaces\.\d+\.(daxian|xiaoxian)\./,"大限"],[/^palaces\.\d+\.sanfang\./,"三方四正"],[/^palaces\.\d+\./,"宫位"],[/^palaces\./,"命身宫"],[/^soul\./,"命宫"],[/^body\./,"身宫"],[/^doujun\./,"流年斗君"],[/^siZhu\.year$/,"年柱"],[/^siZhu\.month$/,"月柱"],[/^siZhu\.day$/,"日柱"],[/^siZhu\.time$/,"时柱"],[/^ju$|^juNumber$/,"局数"],[/^yuan$/,"三元"],[/^dun$/,"阴阳遁"],[/^daxian(List)?\./,"大限"],[/^fly(Chains|Composite)?\./,"飞星"],[/^pattern/,"格局"],[/^schools\./,"流派回显"],[/^dayun\.jiao\./,"起运"],[/^dayun\.toNextJieDays$/,"起运时间"],[/^dayun\.list\.(\d+)\.ganzhi$/,"大运干支"],[/^dayun\.startAge(Exact)?\./,"起运时间"],[/^dayun\./,"大运评分"],[/^liunian\./,"流年"],[/^jieqi\./,"节气边界"],[/^solarTime\./,"真太阳时"],[/^dayGanZhi$/,"日辰"],[/^hourZhi$/,"时支"],[/^yueJiang\./,"月将"],[/^xunKong$/,"旬空"],[/^lines\.(\d+)\./,"爻"],[/^shensha\./,"神煞"],[/^frame\./,"格局用神"],[/^strength\./,"旺衰"],[/^wuxing\./,"五行计数"],[/^relations\./,"干支关系"],[/^input\./,"输入回显"]],x=[[/^pillars\./,"四柱"],[/^shensha\./,"神煞"],[/^dayun\./,"大运"],[/^liunian\./,"流年"],[/^frame\./,"格局用神"],[/^strength\./,"旺衰"],[/^wuxing\./,"五行计数"],[/^dayMaster\./,"日主"],[/^relations\./,"干支关系"],[/^palaces\.(taiyuan|minggong|shengong)\./,"命身宫"],[/^palaces\.\d+\./,"宫位"],[/^palaces\./,"命身宫"],[/^soul\.|^body\.|^doujun\./,"命身宫"],[/^siZhu\./,"四柱"],[/^ju$|^juNumber$|^yuan$|^dun$/,"局数"],[/^daxian/,"大限"],[/^fly/,"飞星"],[/^pattern/,"格局"],[/^jieqi\./,"节气"],[/^solarTime\./,"真太阳时"],[/^input\./,"输入回显"],[/^lines\./,"爻"]],T=[[/^pillars\.(year|month|day|hour)\.ganzhi$/,"柱"],[/^palaces\.(minggong|shengong)\.ganzhi$/,"命身宫"],[/^soul\.ganzhi$/,"命宫"],[/^body\.branch$/,"身宫"],[/^siZhu\.(year|month|day|time)$/,"柱"],[/^dayun\.jiao\.at$/,"起运"],[/^dayGanZhi$/,"日辰"],[/^hourZhi$/,"时支"],[/^ju$|^juNumber$|^juName$/,"局数"],[/^dun$/,"阴阳遁"],[/^lines\.\d+\.(ganzhi|yinYang|name)$/,"爻"],[/^yueJiang\.(name|zhi)$/,"月将"]];function P(o){for(const[h,c]of D)if(h.test(o))return c;return k(o)||o}function k(o){for(const[h,c]of x)if(h.test(o))return c;return""}function w(o){for(const[h,c]of T)if(h.test(o))return c;return""}function f(o){return[...o].sort((h,c)=>h.path.localeCompare(c.path,"zh-Hans-CN",{numeric:!0}))}function N(o){if(!o.length)return"本盘不受此口径影响:所有字段一致。";const h=o.filter(O=>w(O.path)),c=[...new Set(o.map(O=>k(O.path)).filter(Boolean))],y=h.length?`根因 ${h.length} 处:`+h.slice(0,4).map(O=>`${P(O.path)} ${b(O.from)}→${b(O.to)}`).join("、")+(h.length>4?" 等":""):"无单一根因",j=c.length?`;连带影响 ${c.slice(0,6).join("、")}${c.length>6?" 等":""} ${c.length} 类,共 ${o.length} 处`:`;共 ${o.length} 处`;return y+j+"。"}const b=o=>o===void 0?"—":o===null?"null":typeof o=="string"?o:Array.isArray(o)?o.join("")||"[]":typeof o=="object"?JSON.stringify(o):String(o);function s(o,{title:h="",limit:c=12}={}){const y=[];if(h&&y.push(`【${h}】`),y.push(N(o)),!o.length)return y.join(`
|
|
2
2
|
`);const j=f(o.filter(A=>w(A.path))),O=f(o.filter(A=>!w(A.path)));if(j.length){y.push(""),y.push(" 根因(口径直接改动):");for(const A of j)y.push(` ${P(A.path).padEnd(6)} ${b(A.from)} → ${b(A.to)}`)}if(O.length){y.push(""),y.push(` 连带变化(${O.length} 处,展示前 ${Math.min(c,O.length)} 处):`);for(const A of O.slice(0,c))y.push(` ${P(A.path).padEnd(6)} ${b(A.from)} → ${b(A.to)}`);if(O.length>c){const A={};for(const Y of O.slice(c)){const v=k(Y.path)||"其他";A[v]=(A[v]||0)+1}y.push(" 其余:"+Object.entries(A).map(([Y,v])=>`${Y} ${v} 处`).join("、"))}}return y.join(`
|
|
3
3
|
`)}const u=(o,h,c,y,j,O)=>({key:o,title:h,short:c,read:A=>{const Y=A[o]!==void 0?A[o]:A.schools&&A.schools[o];return O[Y]?Y:y},alt:A=>A===j?y:j,label:A=>O[A]||A}),r={bazi:[{key:"lateZi",title:"晚子时:23:00 后是否换日",short:"晚子时",read:o=>_(o.lateZi,!0),alt:o=>!o,label:o=>o?"换日":"不换日"},{key:"trueSolar",title:"真太阳时:是否按出生地经度修正",short:"真太阳时",read:o=>_(o.trueSolar,!0),alt:o=>!o,label:o=>o?"修正":"不修正"}],ziwei:[{key:"leapMonth",title:"闰月归月:按日切分 / 整月归次月",short:"闰月归月",read:o=>o.leapMonth==="next"||o.leapMonth==="prev"?o.leapMonth:"split",alt:o=>o==="split"?"next":"split",label:o=>({split:"按日切分",next:"整月归次月",prev:"整月归本月"})[o]||o},{key:"trueSolar",title:"真太阳时:是否按出生地经度修正",short:"真太阳时",read:o=>_(o.trueSolar,!0),alt:o=>!o,label:o=>o?"修正":"不修正"},u("brightnessSchool","亮度表:默认 / QS 七档","亮度表","default","QS",{default:"默认",QS:"QS(七档)",XD1:"XD1(七档)",ZZ:"ZZ(五档)",XD2:"XD2(五档)"}),u("gengYearSihua","庚干四化:阳武阴同 / 同科阴忌","庚干四化","GYWYT","GYWTY",{GYWYT:"阳武阴同",GYWTY:"同科阴忌",GYWFT:"府科同忌",GYWFX:"府科相忌",GYWTX:"同科相忌"}),u("tianmaSchool","天马:按年支 / 按生月","天马","year-branch","month-branch",{"year-branch":"年支","month-branch":"生月"}),u("tiankongSchool","天空:不排 / 年支顺行","天空","off","normal",{off:"不排",normal:"年支顺行","shun-jia-shi":"加生时"}),u("jiekongSchool","截空旬空:不排 / 正副双星","截空旬空","off","double",{off:"不排",single:"单星",double:"正副双星",zhanyan:"占验派"}),u("kuiyueSchool","魁钺:qs1 / qs2","魁钺","qs1","qs2",{qs1:"qs1",qs2:"qs2","zhong-yiming":"中一鸣"}),u("tianshiTianshang","天伤天使:常规 / 中州互换","天伤天使","normal","zhongzhou",{normal:"常规",zhongzhou:"中州(阴男阳女互换)"}),u("changshengSchool","长生:阴阳顺逆 / 火土起寅","长生","yin-yang-shun-ni","huo-tu",{"yin-yang-shun-ni":"阴阳顺逆","shui-tu":"水二","huo-tu":"火土(土五局起寅)"}),u("lateZishi","晚子时:归当日 / 归次日","晚子时","current-day","next-day",{"current-day":"归当日","next-day":"归次日","all-current":"全归当日","day-cur-time-next":"日归当日·时归次日"}),u("shenzhuSchool","身主:子午皆火星 / 子铃午火","身主","common","verse",{common:"子午皆火星",verse:"子铃午火(安身主诀逐字)"}),u("zuoyaoSchool","杂曜:49 颗简盘 / 61 颗全表","杂曜全表","minimal","full",{minimal:"49 颗(简盘)",full:"61 颗(加十二颗杂曜)"})],qimen:[{key:"juMethod",title:"取局流派:拆补 / 超神接气 / 置闰",short:"取局流派",read:o=>["chaibu","chaoshen","zhirun"].includes(o.juMethod)?o.juMethod:"chaibu",alt:o=>o==="chaibu"?"zhirun":"chaibu",label:o=>({chaibu:"拆补法",chaoshen:"超神接气",zhirun:"置闰法"})[o]||o},{key:"lateZiHourMode",title:"晚子时:23:00 后归当日 / 次日",short:"晚子时归日",read:o=>o.lateZiHourMode==="next-day"?"next-day":"same-day",alt:o=>o==="next-day"?"same-day":"next-day",label:o=>o==="next-day"?"归次日":"归当日"}]},E={bazi:[{path:"pillars.day.ganzhi",label:"日柱"},{path:"pillars.hour.ganzhi",label:"时柱"},{path:"strength.level",label:"旺衰"},{path:"frame.primaryName",label:"格局"},{path:"frame.yongshen.favor",label:"喜用"},{path:"dayun.jiao.at",label:"起运"}],ziwei:[{path:"soul.ganzhi",label:"命宫"},{path:"body.branch",label:"身宫支"},{path:"bureau.name",label:"五行局"},{path:"bodyMaster",label:"身主"},{path:"daxianList.0.ages",label:"起大限"}],qimen:[{path:"siZhu.day",label:"日柱"},{path:"ju",label:"局数"},{path:"zhiFu.star",label:"值符"},{path:"zhiShi.gate",label:"值使"}]};function g(o,h){let c=o;for(const y of String(h).split(".")){if(c==null)return;c=c[y]}return c}function $(o){return o==null?"—":Array.isArray(o)?o.join("、"):typeof o=="object"?"—":String(o)}function m(o,h,c){return(E[o]||[]).map(j=>{const O=$(g(h,j.path)),A=$(g(c,j.path));return{key:j.path,label:j.label,current:O,alt:A,changed:O!==A}})}return{diffObjects:B,labelOf:P,categoryOf:k,rootOf:w,sortDiffs:f,summarize:N,formatValue:b,renderDiff:s,CALIBER_SWITCHES:r,CALIBER_VIEWS:E,viewCell:$,viewRows:m}})(),R.fingerprint=(function(){const _="0123456789ABCDEFGHJKMNPQRSTVWXYZ";function G(x){return JSON.stringify(C(x))}function C(x){if(x===null)return null;const T=typeof x;if(T==="string")return typeof x.normalize=="function"?x.normalize("NFC"):x;if(T==="number")return Number.isFinite(x)?Object.is(x,-0)?0:x:null;if(T==="boolean")return x;if(Array.isArray(x))return x.map(C);if(T==="object"){const P=Object.create(null);for(const k of Object.keys(x).sort()){const w=x[k];w===void 0||typeof w=="function"||typeof w=="symbol"||(P[k]=C(w))}return P}return null}function B(x){const T=String(x);let P=2166136261,k=2654435769;for(let N=0;N<T.length;N+=1){const b=T.charCodeAt(N);for(const s of[b&255,b>>>8])P=Math.imul(P^s,16777619),k=Math.imul(k^s,2246822507)}let w=(P>>>0)*8+(k>>>29),f="";for(let N=0;N<7;N+=1)f=_[w%32]+f,w=Math.floor(w/32);return f}function D(x={}){const T=String(x.system||""),P=String(x.version||"dev"),k=x.seed===void 0||x.seed===null||x.seed===""?null:Number(x.seed),w=x.asOf?String(x.asOf):null,f=x.params&&typeof x.params=="object"?x.params:{},N=G({system:T,params:f,seed:k,asOf:w}),b=G({base:N,version:P});return{id:`LY-${B(b)}`,baseId:`LY-${B(N)}`,version:P,system:T,payload:N}}return{canonicalJson:G,shortHash:B,fingerprintOf:D}})(),R.validate=(function(){const{fail:_}=R.fail||{},G=1600,C=2400;function B(f){return f%4===0&&f%100!==0||f%400===0}function D(f,N){return N===2?B(f)?29:28:[31,28,31,30,31,30,31,31,30,31,30,31][N-1]||0}const x=f=>typeof f=="string"?`「${f}」`:String(f),T="引擎只接受解析好的公历字段 { year, month, day, hour?, minute? };字符串请先交给宿主层的 parseDateTime 解析";function P(f,N=""){const b=N?`${N} 的`:"";if(!f||typeof f!="object"||Array.isArray(f)){const E=f===null?"null":Array.isArray(f)?"数组":typeof f;throw _("E_INPUT",`${b}入参必须是对象(收到 ${E});${T}`)}const s=f.hour===void 0?0:f.hour,u=f.minute===void 0?0:f.minute;for(const[E,g]of[["year",f.year],["month",f.month],["day",f.day],["hour",s],["minute",u]])if(!Number.isInteger(g))throw _("E_INPUT",`${b}${E} 必须是整数(收到 ${x(g)});${T}`);if(f.year<G||f.year>C)throw _("E_INPUT",`${b}year 超出支持范围 ${G}–${C}(收到 ${f.year});更早的年份时区与历法口径不可靠`);if(f.month<1||f.month>12)throw _("E_INPUT",`${b}month 超出范围 1–12(收到 ${f.month})`);const r=D(f.year,f.month);if(f.day<1||f.day>r)throw _("E_INPUT",`${b}日期不存在:${f.year}-${f.month}-${f.day}(${f.year} 年 ${f.month} 月只有 ${r} 天)`);if(s<0||s>23)throw _("E_INPUT",`${b}hour 超出范围 0–23(收到 ${s})`);if(u<0||u>59)throw _("E_INPUT",`${b}minute 超出范围 0–59(收到 ${u})`);return f}function k(f,N,b){if(!f||typeof f!="object"||Array.isArray(f)){const s=f===null?"null":f===void 0?"undefined":Array.isArray(f)?"数组":typeof f;throw _("E_INPUT",`${N} 必须是对象(收到 ${s});${b}`)}return f}function w(f,N=""){const b=N?`${N}:`:"";if(f.year<G||f.year>C)throw _("E_RANGE",`${b}晚子时按次日归后落到 ${f.year}-${String(f.month).padStart(2,"0")}-${String(f.day).padStart(2,"0")},超出可计算范围 ${G}–${C};请把时刻挪到 23 点前,或换一天起课`);return f}return{MIN_YEAR:G,MAX_YEAR:C,isLeapYear:B,daysInMonth:D,assertCivil:P,assertObject:k,assertShifted:w}})(),R.datetime=(function(){const{fail:_}=R.fail||{},{MIN_YEAR:G,MAX_YEAR:C}=R.validate||{};function B(T,P){return P===2?T%4===0&&T%100!==0||T%400===0?29:28:[31,28,31,30,31,30,31,31,30,31,30,31][P-1]}function D(T,P=""){const k=String(T??"").trim(),w=/^(\d{4})-(\d{1,2})-(\d{1,2})$/.exec(k);if(!w)return null;const f=Number(w[1]),N=Number(w[2]),b=Number(w[3]);if(N<1||N>12||b<1||b>B(f,N))return null;if(f<G||f>C){const s=P?`${P} `:"";throw _("E_RANGE",`${s}「${w[0]}」的年份超出可计算范围(${G}–${C},收到 ${f} 年);农历与节气表不覆盖之外的年份`)}return{year:f,month:N,day:b}}function x(T){if(typeof T!="string"||!T.trim())throw _("E_INPUT","缺少 datetime(公历日期时间),例如 1990-05-12T14:30");const P=T.trim().match(/^(\d{4})-(\d{1,2})-(\d{1,2})(?:[T\s](\d{1,2}):(\d{1,2})(?::(\d{1,2}))?)?$/);if(!P)throw _("E_INPUT",`无法解析 datetime:「${T}」,请用 1990-05-12T14:30 这种格式`);if(P[6]!==void 0&&Number(P[6])>59)throw _("E_INPUT",`秒超出范围:${P[6]}`);const k={year:Number(P[1]),month:Number(P[2]),day:Number(P[3]),hour:Number(P[4]??0),minute:Number(P[5]??0)};if(k.month<1||k.month>12)throw _("E_INPUT",`月份超出范围:${k.month}`);const w=B(k.year,k.month);if(k.day<1||k.day>w)throw _("E_INPUT",`日期不存在:${k.year}-${k.month}-${k.day}(${k.year} 年 ${k.month} 月只有 ${w} 天)`);if(k.hour>23||k.minute>59)throw _("E_INPUT",`时间超出范围:${k.hour}:${k.minute}`);if(k.year<G||k.year>C)throw _("E_RANGE",`年份 ${k.year} 超出可计算范围(${G}–${C})`);return(k.year<1900||k.year>2100)&&(k.precision={level:"approx",note:`ΔT 模型仅覆盖 1900–2100,${k.year} 年按端点值外推,节气与朔望时刻可能有分钟级偏差,月柱在交节前后需复核`}),k}return{daysInMonth:B,parseYmd:D,parseDateTime:x}})(),R.lru=(function(){function _({max:G=64,ttlMs:C=0,name:B="lru",now:D=()=>Date.now()}={}){const x=new Map,T={name:B,hits:0,misses:0,evictions:0,expirations:0},P=k=>C>0&&D()-k.at>C;return{name:B,max:G,ttlMs:C,get(k){const w=x.get(k);if(!w||P(w)){w&&(x.delete(k),T.expirations+=1),T.misses+=1;return}return x.delete(k),x.set(k,w),T.hits+=1,w.value},set(k,w){for(x.has(k)&&x.delete(k),x.set(k,{value:w,at:D()});x.size>G;)x.delete(x.keys().next().value),T.evictions+=1;return w},has(k){const w=x.get(k);return w?P(w)?(x.delete(k),T.expirations+=1,!1):!0:!1},delete(k){return x.delete(k)},clear(){x.clear()},get size(){return x.size},stats(){const k=T.hits+T.misses;return{name:B,size:x.size,max:G,hits:T.hits,misses:T.misses,evictions:T.evictions,expirations:T.expirations,hitRate:k?T.hits/k:0}}}}return{createLru:_}})(),R.nayin=(function(){const _=["海中金","炉中火","大林木","路旁土","剑锋金","山头火","涧下水","城头土","白蜡金","杨柳木","泉中水","屋上土","霹雳火","松柏木","长流水","沙中金","山下火","平地木","壁上土","金箔金","覆灯火","天河水","大驿土","钗钏金","桑柘木","大溪水","沙中土","天上火","石榴木","大海水"];function G(C){const B=(Number(C)%60+60)%60,D=_[Math.floor(B/2)];return{name:D,element:D[2]}}return{NAYIN_NAMES:_,nayinOf:G}})(),R.sanhe=(function(){const _=[{branches:["申","子","辰"],element:"水"},{branches:["亥","卯","未"],element:"木"},{branches:["寅","午","戌"],element:"火"},{branches:["巳","酉","丑"],element:"金"}],G=Object.fromEntries(_.map(D=>[D.branches.join(""),D.element])),C=Object.fromEntries(_.flatMap(D=>D.branches.map(x=>[x,D.element])));function B(D){return _.find(x=>x.branches.includes(D))||null}return{SANHE_GROUPS:_,SANHE:G,SANHE_ELEMENT:C,sanheGroupOf:B}})(),R["vsop-earth"]=(function(){const _=[[1.75347045673,0,0],[.03341656453,4.66925680415,6283.0758499914],[.00034894275,4.62610242189,12566.1516999828],[3417572e-11,2.82886579754,3.523118349],[3497056e-11,2.74411783405,5753.3848848968],[3135899e-11,3.62767041756,77713.7714681205],[2676218e-11,4.41808345438,7860.4193924392],[2342691e-11,6.13516214446,3930.2096962196],[1273165e-11,2.03709657878,529.6909650946],[1324294e-11,.74246341673,11506.7697697936],[901854e-11,2.04505446477,26.2983197998],[1199167e-11,1.10962946234,1577.3435424478],[857223e-11,3.50849152283,398.1490034082],[779786e-11,1.17882681962,5223.6939198022],[99025e-10,5.23268072088,5884.9268465832],[753141e-11,2.53339052847,5507.5532386674],[505267e-11,4.58292599973,18849.2275499742],[492392e-11,4.20505711826,775.522611324],[356672e-11,2.91954114478,.0673103028],[284125e-11,1.89869240932,796.2980068164],[242879e-11,.34481445893,5486.777843175],[317087e-11,5.84901948512,11790.6290886588],[271112e-11,.31486255375,10977.078804699],[206217e-11,4.80646631478,2544.3144198834],[205478e-11,1.86953770281,5573.1428014331],[202318e-11,2.45767790232,6069.7767545534],[126225e-11,1.08295459501,20.7753954924],[155516e-11,.83306084617,213.299095438],[115132e-11,.64544911683,.9803210682],[102851e-11,.63599845579,4694.0029547076],[101724e-11,4.2667980198,7.1135470008],[99206e-11,6.20992926918,2146.1654164752],[132212e-11,3.41118292683,2942.4634232916],[97607e-11,.68101342359,155.4203994342],[85128e-11,1.29870764804,6275.9623029906],[74651e-11,1.755089133,5088.6288397668],[101895e-11,.97569280312,15720.8387848784],[84711e-11,3.67080093031,71430.69561812909],[73547e-11,4.67926633877,801.8209311238],[73874e-11,3.50319414955,3154.6870848956],[78757e-11,3.03697458703,12036.4607348882],[79637e-11,1.80791287082,17260.1546546904],[85803e-11,5.9832263126,161000.6857376741],[56963e-11,2.78430458592,6286.5989683404],[61148e-11,1.81839892984,7084.8967811152],[69627e-11,.83297621398,9437.762934887],[56116e-11,4.38694865354,14143.4952424306],[62449e-11,3.97763912806,8827.3902698748],[51145e-11,.28306832879,5856.4776591154],[55577e-11,3.47006059924,6279.5527316424],[41036e-11,5.36817592855,8429.2412664666],[51605e-11,1.33282739866,1748.016413067],[51992e-11,.18914947184,12139.5535091068],[49e-8,.48735014197,1194.4470102246],[392e-9,6.16833020996,10447.3878396044],[3557e-10,1.775968892,6812.766815086],[3677e-10,6.04133863162,10213.285546211],[36596e-11,2.56957481827,1059.3819301892],[33296e-11,.59310278598,17789.845619785],[35954e-11,1.70875808777,2352.8661537718],[40938e-11,2.39850938714,19651.048481098],[30047e-11,2.73975124088,1349.8674096588],[30412e-11,.44294464169,83996.84731811189],[23663e-11,.48473622521,8031.0922630584],[23574e-11,2.06528133162,3340.6124266998],[21089e-11,4.14825468851,951.7184062506],[24738e-11,.21484762138,3.5904286518],[25352e-11,3.16470891653,4690.4798363586],[22823e-11,5.22195230819,4705.7323075436],[21419e-11,1.42563910473,16730.4636895958],[21891e-11,5.55594302779,553.5694028424],[203e-9,.37133792946,283.8593188652]],G=[[6283.0758499914,0,0],[.00206058863,2.67823455808,6283.0758499914],[4303419e-11,2.63512233481,12566.1516999828],[425264e-11,1.59046982018,3.523118349],[109017e-11,2.96631010675,1577.3435424478],[93479e-11,2.59211109542,18849.2275499742],[119305e-11,5.79555765566,26.2983197998],[72121e-11,1.13840581212,529.6909650946],[67784e-11,1.87453300345,398.1490034082],[6735e-10,4.40932832004,5507.5532386674],[59045e-11,2.88815790631,5223.6939198022],[55976e-11,2.17471740035,155.4203994342],[45411e-11,.39799502896,796.2980068164],[36298e-11,.46875437227,775.522611324],[28962e-11,2.64732254645,7.1135470008],[20844e-11,5.34138275149,.9803210682]],C=[[8721859e-11,1.07253635559,6283.0758499914],[99099e-10,3.14159265359,0],[294833e-11,.43717350256,12566.1516999828],[27338e-11,.05295636147,3.523118349],[16333e-11,5.18820215724,26.2983197998],[15745e-11,3.68504712183,155.4203994342],[9425e-11,.29667114694,18849.2275499742],[8938e-11,2.05706319592,77713.7714681205],[694e-10,.82691541038,775.522611324],[5061e-11,4.6624323168,1577.3435424478]],B=[[289058e-11,5.84173149732,6283.0758499914],[20712e-11,6.0498393902,12566.1516999828],[2962e-11,5.1956057957,155.4203994342],[2527e-11,3.14159265359,0],[1288e-11,4.7219761197,3.523118349]],D=[[7714e-11,4.14117321449,6283.0758499914],[1016e-11,3.27573644241,12566.1516999828]];function x(T){let P=0;for(const[w,f,N]of _)P+=w*Math.cos(f+N*T);let k=1;for(const w of[G,C,B,D]){k*=T;for(const[f,N,b]of w)P+=f*k*Math.cos(N+b*T)}return P}return{earthL:x}})(),R.calendar=(function(){const{earthL:_}=R["vsop-earth"]||{},{createLru:G}=R.lru||{},{bool:C}=R.bool||{},B=["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"],D=["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"],x=["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"];function T(q){return(285+15*q)%360}function P(q,Z,F){const te=Math.floor((14-Z)/12),V=q+4800-te,U=Z+12*te-3;return F+Math.floor((153*U+2)/5)+365*V+Math.floor(V/4)-Math.floor(V/100)+Math.floor(V/400)-32045}function k(q){const Z=q+32044,F=Math.floor((4*Z+3)/146097),te=Z-Math.floor(146097*F/4),V=Math.floor((4*te+3)/1461),U=te-Math.floor(1461*V/4),X=Math.floor((5*U+2)/153);return{year:100*F+V-4800+Math.floor(X/10),month:X+3-12*Math.floor(X/10),day:U-Math.floor((153*X+2)/5)+1}}function w(q,Z){for(let F=0;F<60;F++)if(F%10===q&&F%12===Z)return F;return-1}function f(q){const Z=(q%60+60)%60;return{index:Z,stem:B[Z%10],branch:D[Z%12],name:B[Z%10]+D[Z%12]}}function N(q){return((q+49)%60+60)%60}function b(q){const Z=q-2451545,F=Z/36525,te=Z/365250;let V=_(te)*180/Math.PI+180;V=(V%360+360)%360;const U=(5029.0966*F+1.11113*F*F-6e-6*F*F*F)/3600;V+=U,V-=.09033/3600;const X=(125.04452-1934.136261*F)*Math.PI/180,re=(280.4665+36000.7698*F)*Math.PI/180,ae=(218.3165+481267.8813*F)*Math.PI/180,ge=(-17.2*Math.sin(X)-1.32*Math.sin(2*re)-.23*Math.sin(2*ae)+.21*Math.sin(2*X))/3600;V+=ge;const ie=(357.52911+35999.05029*F-1537e-7*F*F)*Math.PI/180,me=.016708634-42037e-9*F-1267e-10*F*F,Te=1.000001018*(1-me*me)/(1+me*Math.cos(ie+(1.914602-.004817*F)*(Math.PI/180)*Math.sin(ie)));return V-=20.4898/3600/(Te||1),(V%360+360)%360}function s(q){if(q<1900){const X=q;if(X<1600)return 120;if(X<1700){const ae=X-1600;return 120-.9808*ae-.01532*ae*ae+ae*ae*ae/7129}if(X<1800){const ae=X-1700;return 8.83+.1603*ae-.0059285*ae*ae+13336e-8*ae*ae*ae-ae**4/1174e3}if(X<1860){const ae=X-1800;return 13.72-.332447*ae+.0068612*ae*ae+.0041116*ae**3-37436e-8*ae**4+121272e-10*ae**5-1699e-10*ae**6+875e-12*ae**7}const re=X-1860;return 7.62+.5737*re-.251754*re*re+.01680668*re**3-.0004473624*re**4+re**5/233174}const Z=[[1900,-2.8],[1920,21.2],[1940,24.3],[1950,29.1],[1960,33.2],[1970,40.2],[1980,50.5],[1990,56.9],[2e3,63.8],[2010,66.1],[2020,69.4],[2030,72],[2050,80],[2100,110]];if(q<=Z[0][0])return Z[0][1];for(let X=1;X<Z.length;X++)if(q<=Z[X][0]){const[re,ae]=Z[X-1],[ge,ie]=Z[X];return ae+(ie-ae)*(q-re)/(ge-re)}const[F,te]=Z[Z.length-1],V=(F-1820)/100,U=(q-1820)/100;return te+32*(U*U-V*V)}const u=8/24,r=7.7611/24,E=2425612+4/24;function g(q){return q<E?r:u}const $=G({max:4096,name:"termInstant"}),m=1e-5,o=new Map,h=365.2422;function c(q,Z){const F=T(Z),te=P(q,1,5)-.5+Z*15.2184,V=o.get(Z);let U=V!==void 0?V+h:te;Math.abs(U-te)>20&&(U=te);for(let re=0;re<12;re++){let ae=F-b(U);if(ae=((ae+180)%360+360)%360-180,U+=ae/.98564736,Math.abs(ae)<m)break}o.set(Z,U);const X=U-s(q)/86400;return X+g(X)}function y(q,Z){const F=q*24+Z,te=$.get(F);if(te!==void 0)return te;const V=c(q,Z);return $.set(F,V),V}function j(q){const Z=Math.floor(q+.5),F=q+.5-Z,te=Math.min(1439,Math.floor(Math.round(F*86400)/60)),{year:V,month:U,day:X}=k(Z);return{year:V,month:U,day:X,hour:Math.floor(te/60),minute:te%60}}function O({year:q,month:Z,day:F,hour:te=0,minute:V=0}){return P(q,Z,F)-.5+(te*60+V)/1440}function A(q,Z,F){const te=P(q,Z,F)-P(q,1,1)+1,V=2*Math.PI*(te-81)/364;return 9.87*Math.sin(2*V)-7.53*Math.cos(V)-1.5*Math.sin(V)}const Y=G({max:8,name:"termWindow"}),v=G({max:32,name:"termYear"}),he=Array.from({length:24},(q,Z)=>Z),be=he.filter(q=>q%2===0);function a(q,Z){const F=Z?`${q}|jie`:`${q}|all`,te=v.get(F);if(te)return te;if(Z){const U=v.get(`${q}|all`);if(U){const X=U.filter(re=>re.index%2===0);return v.set(F,X),X}}const V=[];for(const U of Z?be:he)V.push({year:q,index:U,name:x[U],jd:y(q,U)});return V.sort((U,X)=>U.jd-X.jd),v.set(F,V),V}function I(q,Z={}){const F=C(Z.jieOnly),te=F?`${q}|jie`:q,V=Y.get(te);if(V)return V;const U=[...a(q-1,F),...a(q,F),...a(q+1,F)];return U.sort((X,re)=>X.jd-re.jd),Y.set(te,U),U}function K(q){if(typeof q!="string"||q.length<2)return[];const Z=B.indexOf(q[0]),F=D.indexOf(q[1]);if(Z<0||F<0)return[];const te=w(Z,F);if(te<0)return[];const V=Math.floor(te/10)*10;return[D[(V+10)%12],D[(V+11)%12]]}function oe(q,Z){let F=null;for(const te of q)if(te.index%2===0)if(te.jd<=Z)F=te;else break;return F}function J(q,Z){for(const F of q)if(F.index%2===0&&F.jd>Z)return F;return null}function ne(q){const Z=j(q),F=te=>String(te).padStart(2,"0");return`${Z.year}-${F(Z.month)}-${F(Z.day)} ${F(Z.hour)}:${F(Z.minute)}`}function ue(){return[$.stats(),v.stats(),Y.stats()]}return{STEMS:B,BRANCHES:D,TERM_NAMES:x,termLongitude:T,toJDN:P,fromJDN:k,sexagenaryIndex:w,ganzhiName:f,dayGanzhiIndex:N,sunLongitude:b,deltaTSeconds:s,OFFSET_MODERN:u,OFFSET_BEIJING_LOCAL:r,CUTOVER_JD:E,localOffsetFor:g,termInstantJd:y,jdToParts:j,partsToJd:O,equationOfTime:A,termWindow:I,xunKongOf:K,previousJie:oe,nextJie:J,formatJd:ne,cacheMetrics:ue}})(),R.lunar=(function(){const{toJDN:_,jdToParts:G,termInstantJd:C,deltaTSeconds:B,localOffsetFor:D}=R.calendar||{},x=29.530588861,T=245155009766e-5,P=Math.PI/180;function k(s){const u=s/1236.85,r=T+x*s+15437e-8*u*u-15e-8*u*u*u+73e-11*u*u*u*u,E=1-.002516*u-74e-7*u*u,g=(2.5534+29.1053567*s-14e-7*u*u-11e-8*u*u*u)*P,$=(201.5643+385.81693528*s+.0107582*u*u+1238e-8*u*u*u-58e-9*u*u*u*u)*P,m=(160.7108+390.67050284*s-.0016118*u*u-227e-8*u*u*u+11e-9*u*u*u*u)*P,o=(124.7746-1.56375588*s+.0020672*u*u+215e-8*u*u*u)*P,h=-.4072*Math.sin($)+.17241*E*Math.sin(g)+.01608*Math.sin(2*$)+.01039*Math.sin(2*m)+.00739*E*Math.sin($-g)-.00514*E*Math.sin($+g)+.00208*E*E*Math.sin(2*g)-.00111*Math.sin($-2*m)-57e-5*Math.sin($+2*m)+56e-5*E*Math.sin(2*$+g)-42e-5*Math.sin(3*$)+42e-5*E*Math.sin(g+2*m)+38e-5*E*Math.sin(g-2*m)-24e-5*E*Math.sin(2*$-g)-17e-5*Math.sin(o)-7e-5*Math.sin($+2*g)+4e-5*Math.sin(2*$-2*m)+4e-5*Math.sin(3*g)+3e-5*Math.sin($+g-2*m)+3e-5*Math.sin(2*$+2*m)-3e-5*Math.sin($+g+2*m)+3e-5*Math.sin($-g+2*m)-2e-5*Math.sin($-g-2*m)-2e-5*Math.sin(3*$+g)+2e-5*Math.sin(4*$),c=r+h-B(2e3+u*100)/86400;return c+D(c)}function w(s){return Math.floor(s+.5)}function f(s){return Math.round((s+.5-T)/x)}function N(s,u,r){for(let E=s-1;E<=s+1;E++)for(let g=1;g<24;g+=2){const $=C(E,g),m=w($);if(m>=u&&m<r)return{index:g,jd:$}}return null}function b(s,u,r){const E=_(s,u,r),g=w(C(s,23)),$=E<g?s-1:s,m=w(C($,23));let o=f(m);for(;w(k(o))>m;)o--;for(;w(k(o+1))<=m;)o++;const h=w(C($+1,23));let c=o;for(;w(k(c+1))<=h;)c++;const y=c-o;let j=-1;if(y===13)for(let Y=1;Y<=y;Y++){const v=w(k(o+Y-1)),he=w(k(o+Y));if(!N($,v,he)){j=Y;break}}let O=11,A=!1;for(let Y=1;Y<=15;Y++){const v=w(k(o+Y-1)),he=w(k(o+Y)),be=N($,v,he),a=Y===j;if(E>=v&&E<he){const I=G(k(o+Y-1)),K=a?(O+10)%12+1:O;return{year:$,lunarYear:A?$+1:$,month:K,day:E-v+1,isLeap:a,monthStart:`${I.year}-${String(I.month).padStart(2,"0")}-${String(I.day).padStart(2,"0")}`,hasZhongQi:!!be}}a||(O=O%12+1,O===1&&(A=!0))}throw new Error(`农历换算失败:${s}-${u}-${r}`)}return{SYNODIC:x,newMoonJd:k,dayNumberOf:w,solarToLunar:b}})(),R.geo=(function(){const{bool:_}=R.bool||{},G=`
|
|
4
4
|
北京 116.41 39.90;上海 121.47 31.23;天津 117.20 39.13;重庆 106.55 29.56
|