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.fengshui.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
window.__ModuleLoader__.load({id:"dsh-metaphysics",chunk:"client.fengshui.js",factory(pt){const R={};return R.fail=(function(){return{fail:(Q,X)=>{const ee=new Error(X);return ee.code=Q,ee}}})(),R.bool=(function(){function H(d,f=!1){return d==null||d===""?f:d===!0||d===1||d==="true"||d==="1"?!0:d===!1||d===0||d==="false"||d==="0"?!1:f}const Q={lateZi:!0,trueSolar:!0,dst:!0,isLeapMonth:!1,leapAsNext:!1,cross:!1,hourUnknown:!1,diff:!1,shadow:!1,trace:!1,rectify:!1,withInterpret:!1},X={lateZi:!0,trueSolar:!0,dst:!0,hourUnknown:!1};function ee(d,f){let l=d;const x=($,S)=>{Object.is(d[$],S)||(l===d&&(l={...d}),l[$]=S)},w=$=>{l===d&&(l={...d}),delete l[$]};for(const[$,S]of Object.entries(f))if(d[$]!==void 0){if(typeof d[$]=="string"&&d[$].trim()===""){w($);continue}x($,H(d[$],S))}return l}function Z(d){if(!d||typeof d!="object"||Array.isArray(d))return d;let f=d;for(const[l,x]of Object.entries(X)){if(d[l]===void 0)continue;if(typeof d[l]=="string"&&d[l].trim()===""){f===d&&(f={...d}),delete f[l];continue}const w=H(d[l],x);Object.is(d[l],w)||(f===d&&(f={...d}),f[l]=w)}return f}function M(d){if(!d||typeof d!="object")return d;let f=ee(d,Q);for(const l of["partner","partner2"]){const x=f[l],w=Z(x);w!==x&&(f===d&&(f={...d}),f[l]=w)}return f}const k=["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"],Y=["lines","rectifyHours","answers"],N=["strokeOverrides","surnameStrokes"],m=/^[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?$/;function y(d){if(typeof d!="string")return d;const f=d.trim();if(!m.test(f))return d;const l=Number(f);return Number.isFinite(l)?l:d}function v(d){let f=!1;const l={};for(const[x,w]of Object.entries(d)){const $=w===null?null:y(w);Object.is($,w)||(f=!0),l[x]=$}return f?l:d}function P(d){if(!d||typeof d!="object")return d;let f=d;const l=(x,w)=>{Object.is(d[x],w)||(f===d&&(f={...d}),f[x]=w)};for(const x of k)if(d[x]!==void 0){if(typeof d[x]=="string"&&d[x].trim()===""){f===d&&(f={...d}),delete f[x];continue}l(x,y(d[x]))}for(const x of Y){const w=d[x];if(!Array.isArray(w))continue;let $=!1;const S=w.map(i=>{if(i===null)return null;if(typeof i=="string"&&i.trim()===""){$=!0;return}const h=y(i);return Object.is(h,i)||($=!0),h});$&&l(x,S)}for(const x of N){const w=d[x];!w||typeof w!="object"||Array.isArray(w)||l(x,v(w))}return f}return{bool:H,FLAG_DEFAULTS:Q,canonicalFlags:M,NUMERIC_KEYS:k,NUMERIC_ARRAY_KEYS:Y,NUMERIC_MAP_KEYS:N,canonicalNumbers:P}})(),R.diff=(function(){const{bool:H}=R.bool||{},Q=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"]),X=i=>i!==null&&typeof i=="object";function ee(i,h,u="",p=[]){if(i===h)return p;if(!X(i)||!X(h))return p.push({path:u||"(root)",from:i,to:h}),p;const j=new Set([...Object.keys(i),...Object.keys(h)]);for(const O of j){if(Q.has(O))continue;const D=u?`${u}.${O}`:O,ie=i[O],_=h[O];X(ie)&&X(_)?ee(ie,_,D,p):JSON.stringify(ie)!==JSON.stringify(_)&&p.push({path:D,from:ie,to:_})}return p}const Z=[[/^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.fengshui.js",factory(pt){const R={};return R.fail=(function(){return{fail:(Q,X)=>{const ee=new Error(X);return ee.code=Q,ee}}})(),R.bool=(function(){function H(d,f=!1){return d==null||d===""?f:d===!0||d===1||d==="true"||d==="1"?!0:d===!1||d===0||d==="false"||d==="0"?!1:f}const Q={lateZi:!0,trueSolar:!0,dst:!0,isLeapMonth:!1,leapAsNext:!1,cross:!1,hourUnknown:!1,diff:!1,shadow:!1,trace:!1,rectify:!1,withInterpret:!1},X={lateZi:!0,trueSolar:!0,dst:!0,hourUnknown:!1};function ee(d,f){let l=d;const x=($,S)=>{Object.is(d[$],S)||(l===d&&(l={...d}),l[$]=S)},w=$=>{l===d&&(l={...d}),delete l[$]};for(const[$,S]of Object.entries(f))if(d[$]!==void 0){if(typeof d[$]=="string"&&d[$].trim()===""){w($);continue}x($,H(d[$],S))}return l}function Z(d){if(!d||typeof d!="object"||Array.isArray(d))return d;let f=d;for(const[l,x]of Object.entries(X)){if(d[l]===void 0)continue;if(typeof d[l]=="string"&&d[l].trim()===""){f===d&&(f={...d}),delete f[l];continue}const w=H(d[l],x);Object.is(d[l],w)||(f===d&&(f={...d}),f[l]=w)}return f}function M(d){if(!d||typeof d!="object")return d;let f=ee(d,Q);for(const l of["partner","partner2"]){const x=f[l],w=Z(x);w!==x&&(f===d&&(f={...d}),f[l]=w)}return f}const k=["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"],Y=["lines","rectifyHours","answers"],N=["strokeOverrides","surnameStrokes"],m=/^[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?$/;function y(d){if(typeof d!="string")return d;const f=d.trim();if(!m.test(f))return d;const l=Number(f);return Number.isFinite(l)?l:d}function v(d){let f=!1;const l={};for(const[x,w]of Object.entries(d)){const $=w===null?null:y(w);Object.is($,w)||(f=!0),l[x]=$}return f?l:d}function P(d){if(!d||typeof d!="object")return d;let f=d;const l=(x,w)=>{Object.is(d[x],w)||(f===d&&(f={...d}),f[x]=w)};for(const x of k)if(d[x]!==void 0){if(typeof d[x]=="string"&&d[x].trim()===""){f===d&&(f={...d}),delete f[x];continue}l(x,y(d[x]))}for(const x of Y){const w=d[x];if(!Array.isArray(w))continue;let $=!1;const S=w.map(i=>{if(i===null)return null;if(typeof i=="string"&&i.trim()===""){$=!0;return}const h=y(i);return Object.is(h,i)||($=!0),h});$&&l(x,S)}for(const x of N){const w=d[x];!w||typeof w!="object"||Array.isArray(w)||l(x,v(w))}return f}return{bool:H,FLAG_DEFAULTS:Q,canonicalFlags:M,NUMERIC_KEYS:k,NUMERIC_ARRAY_KEYS:Y,NUMERIC_MAP_KEYS:N,canonicalNumbers:P}})(),R.diff=(function(){const{bool:H}=R.bool||{},Q=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"]),X=i=>i!==null&&typeof i=="object";function ee(i,h,u="",p=[]){if(i===h)return p;if(!X(i)||!X(h))return p.push({path:u||"(root)",from:i,to:h}),p;const j=new Set([...Object.keys(i),...Object.keys(h)]);for(const O of j){if(Q.has(O))continue;const D=u?`${u}.${O}`:O,ie=i[O],_=h[O];X(ie)&&X(_)?ee(ie,_,D,p):JSON.stringify(ie)!==JSON.stringify(_)&&p.push({path:D,from:ie,to:_})}return p}const Z=[[/^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\./,"输入回显"]],M=[[/^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\./,"爻"]],k=[[/^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 Y(i){for(const[h,u]of Z)if(h.test(i))return u;return N(i)||i}function N(i){for(const[h,u]of M)if(h.test(i))return u;return""}function m(i){for(const[h,u]of k)if(h.test(i))return u;return""}function y(i){return[...i].sort((h,u)=>h.path.localeCompare(u.path,"zh-Hans-CN",{numeric:!0}))}function v(i){if(!i.length)return"本盘不受此口径影响:所有字段一致。";const h=i.filter(O=>m(O.path)),u=[...new Set(i.map(O=>N(O.path)).filter(Boolean))],p=h.length?`根因 ${h.length} 处:`+h.slice(0,4).map(O=>`${Y(O.path)} ${P(O.from)}→${P(O.to)}`).join("、")+(h.length>4?" 等":""):"无单一根因",j=u.length?`;连带影响 ${u.slice(0,6).join("、")}${u.length>6?" 等":""} ${u.length} 类,共 ${i.length} 处`:`;共 ${i.length} 处`;return p+j+"。"}const P=i=>i===void 0?"—":i===null?"null":typeof i=="string"?i:Array.isArray(i)?i.join("")||"[]":typeof i=="object"?JSON.stringify(i):String(i);function d(i,{title:h="",limit:u=12}={}){const p=[];if(h&&p.push(`【${h}】`),p.push(v(i)),!i.length)return p.join(`
|
|
2
2
|
`);const j=y(i.filter(D=>m(D.path))),O=y(i.filter(D=>!m(D.path)));if(j.length){p.push(""),p.push(" 根因(口径直接改动):");for(const D of j)p.push(` ${Y(D.path).padEnd(6)} ${P(D.from)} → ${P(D.to)}`)}if(O.length){p.push(""),p.push(` 连带变化(${O.length} 处,展示前 ${Math.min(u,O.length)} 处):`);for(const D of O.slice(0,u))p.push(` ${Y(D.path).padEnd(6)} ${P(D.from)} → ${P(D.to)}`);if(O.length>u){const D={};for(const ie of O.slice(u)){const _=N(ie.path)||"其他";D[_]=(D[_]||0)+1}p.push(" 其余:"+Object.entries(D).map(([ie,_])=>`${ie} ${_} 处`).join("、"))}}return p.join(`
|
|
3
3
|
`)}const f=(i,h,u,p,j,O)=>({key:i,title:h,short:u,read:D=>{const ie=D[i]!==void 0?D[i]:D.schools&&D.schools[i];return O[ie]?ie:p},alt:D=>D===j?p:j,label:D=>O[D]||D}),l={bazi:[{key:"lateZi",title:"晚子时:23:00 后是否换日",short:"晚子时",read:i=>H(i.lateZi,!0),alt:i=>!i,label:i=>i?"换日":"不换日"},{key:"trueSolar",title:"真太阳时:是否按出生地经度修正",short:"真太阳时",read:i=>H(i.trueSolar,!0),alt:i=>!i,label:i=>i?"修正":"不修正"}],ziwei:[{key:"leapMonth",title:"闰月归月:按日切分 / 整月归次月",short:"闰月归月",read:i=>i.leapMonth==="next"||i.leapMonth==="prev"?i.leapMonth:"split",alt:i=>i==="split"?"next":"split",label:i=>({split:"按日切分",next:"整月归次月",prev:"整月归本月"})[i]||i},{key:"trueSolar",title:"真太阳时:是否按出生地经度修正",short:"真太阳时",read:i=>H(i.trueSolar,!0),alt:i=>!i,label:i=>i?"修正":"不修正"},f("brightnessSchool","亮度表:默认 / QS 七档","亮度表","default","QS",{default:"默认",QS:"QS(七档)",XD1:"XD1(七档)",ZZ:"ZZ(五档)",XD2:"XD2(五档)"}),f("gengYearSihua","庚干四化:阳武阴同 / 同科阴忌","庚干四化","GYWYT","GYWTY",{GYWYT:"阳武阴同",GYWTY:"同科阴忌",GYWFT:"府科同忌",GYWFX:"府科相忌",GYWTX:"同科相忌"}),f("tianmaSchool","天马:按年支 / 按生月","天马","year-branch","month-branch",{"year-branch":"年支","month-branch":"生月"}),f("tiankongSchool","天空:不排 / 年支顺行","天空","off","normal",{off:"不排",normal:"年支顺行","shun-jia-shi":"加生时"}),f("jiekongSchool","截空旬空:不排 / 正副双星","截空旬空","off","double",{off:"不排",single:"单星",double:"正副双星",zhanyan:"占验派"}),f("kuiyueSchool","魁钺:qs1 / qs2","魁钺","qs1","qs2",{qs1:"qs1",qs2:"qs2","zhong-yiming":"中一鸣"}),f("tianshiTianshang","天伤天使:常规 / 中州互换","天伤天使","normal","zhongzhou",{normal:"常规",zhongzhou:"中州(阴男阳女互换)"}),f("changshengSchool","长生:阴阳顺逆 / 火土起寅","长生","yin-yang-shun-ni","huo-tu",{"yin-yang-shun-ni":"阴阳顺逆","shui-tu":"水二","huo-tu":"火土(土五局起寅)"}),f("lateZishi","晚子时:归当日 / 归次日","晚子时","current-day","next-day",{"current-day":"归当日","next-day":"归次日","all-current":"全归当日","day-cur-time-next":"日归当日·时归次日"}),f("shenzhuSchool","身主:子午皆火星 / 子铃午火","身主","common","verse",{common:"子午皆火星",verse:"子铃午火(安身主诀逐字)"}),f("zuoyaoSchool","杂曜:49 颗简盘 / 61 颗全表","杂曜全表","minimal","full",{minimal:"49 颗(简盘)",full:"61 颗(加十二颗杂曜)"})],qimen:[{key:"juMethod",title:"取局流派:拆补 / 超神接气 / 置闰",short:"取局流派",read:i=>["chaibu","chaoshen","zhirun"].includes(i.juMethod)?i.juMethod:"chaibu",alt:i=>i==="chaibu"?"zhirun":"chaibu",label:i=>({chaibu:"拆补法",chaoshen:"超神接气",zhirun:"置闰法"})[i]||i},{key:"lateZiHourMode",title:"晚子时:23:00 后归当日 / 次日",short:"晚子时归日",read:i=>i.lateZiHourMode==="next-day"?"next-day":"same-day",alt:i=>i==="next-day"?"same-day":"next-day",label:i=>i==="next-day"?"归次日":"归当日"}]},x={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 w(i,h){let u=i;for(const p of String(h).split(".")){if(u==null)return;u=u[p]}return u}function $(i){return i==null?"—":Array.isArray(i)?i.join("、"):typeof i=="object"?"—":String(i)}function S(i,h,u){return(x[i]||[]).map(j=>{const O=$(w(h,j.path)),D=$(w(u,j.path));return{key:j.path,label:j.label,current:O,alt:D,changed:O!==D}})}return{diffObjects:ee,labelOf:Y,categoryOf:N,rootOf:m,sortDiffs:y,summarize:v,formatValue:P,renderDiff:d,CALIBER_SWITCHES:l,CALIBER_VIEWS:x,viewCell:$,viewRows:S}})(),R.fingerprint=(function(){const H="0123456789ABCDEFGHJKMNPQRSTVWXYZ";function Q(M){return JSON.stringify(X(M))}function X(M){if(M===null)return null;const k=typeof M;if(k==="string")return typeof M.normalize=="function"?M.normalize("NFC"):M;if(k==="number")return Number.isFinite(M)?Object.is(M,-0)?0:M:null;if(k==="boolean")return M;if(Array.isArray(M))return M.map(X);if(k==="object"){const Y=Object.create(null);for(const N of Object.keys(M).sort()){const m=M[N];m===void 0||typeof m=="function"||typeof m=="symbol"||(Y[N]=X(m))}return Y}return null}function ee(M){const k=String(M);let Y=2166136261,N=2654435769;for(let v=0;v<k.length;v+=1){const P=k.charCodeAt(v);for(const d of[P&255,P>>>8])Y=Math.imul(Y^d,16777619),N=Math.imul(N^d,2246822507)}let m=(Y>>>0)*8+(N>>>29),y="";for(let v=0;v<7;v+=1)y=H[m%32]+y,m=Math.floor(m/32);return y}function Z(M={}){const k=String(M.system||""),Y=String(M.version||"dev"),N=M.seed===void 0||M.seed===null||M.seed===""?null:Number(M.seed),m=M.asOf?String(M.asOf):null,y=M.params&&typeof M.params=="object"?M.params:{},v=Q({system:k,params:y,seed:N,asOf:m}),P=Q({base:v,version:Y});return{id:`LY-${ee(P)}`,baseId:`LY-${ee(v)}`,version:Y,system:k,payload:v}}return{canonicalJson:Q,shortHash:ee,fingerprintOf:Z}})(),R.validate=(function(){const{fail:H}=R.fail||{},Q=1600,X=2400;function ee(y){return y%4===0&&y%100!==0||y%400===0}function Z(y,v){return v===2?ee(y)?29:28:[31,28,31,30,31,30,31,31,30,31,30,31][v-1]||0}const M=y=>typeof y=="string"?`「${y}」`:String(y),k="引擎只接受解析好的公历字段 { year, month, day, hour?, minute? };字符串请先交给宿主层的 parseDateTime 解析";function Y(y,v=""){const P=v?`${v} 的`:"";if(!y||typeof y!="object"||Array.isArray(y)){const x=y===null?"null":Array.isArray(y)?"数组":typeof y;throw H("E_INPUT",`${P}入参必须是对象(收到 ${x});${k}`)}const d=y.hour===void 0?0:y.hour,f=y.minute===void 0?0:y.minute;for(const[x,w]of[["year",y.year],["month",y.month],["day",y.day],["hour",d],["minute",f]])if(!Number.isInteger(w))throw H("E_INPUT",`${P}${x} 必须是整数(收到 ${M(w)});${k}`);if(y.year<Q||y.year>X)throw H("E_INPUT",`${P}year 超出支持范围 ${Q}–${X}(收到 ${y.year});更早的年份时区与历法口径不可靠`);if(y.month<1||y.month>12)throw H("E_INPUT",`${P}month 超出范围 1–12(收到 ${y.month})`);const l=Z(y.year,y.month);if(y.day<1||y.day>l)throw H("E_INPUT",`${P}日期不存在:${y.year}-${y.month}-${y.day}(${y.year} 年 ${y.month} 月只有 ${l} 天)`);if(d<0||d>23)throw H("E_INPUT",`${P}hour 超出范围 0–23(收到 ${d})`);if(f<0||f>59)throw H("E_INPUT",`${P}minute 超出范围 0–59(收到 ${f})`);return y}function N(y,v,P){if(!y||typeof y!="object"||Array.isArray(y)){const d=y===null?"null":y===void 0?"undefined":Array.isArray(y)?"数组":typeof y;throw H("E_INPUT",`${v} 必须是对象(收到 ${d});${P}`)}return y}function m(y,v=""){const P=v?`${v}:`:"";if(y.year<Q||y.year>X)throw H("E_RANGE",`${P}晚子时按次日归后落到 ${y.year}-${String(y.month).padStart(2,"0")}-${String(y.day).padStart(2,"0")},超出可计算范围 ${Q}–${X};请把时刻挪到 23 点前,或换一天起课`);return y}return{MIN_YEAR:Q,MAX_YEAR:X,isLeapYear:ee,daysInMonth:Z,assertCivil:Y,assertObject:N,assertShifted:m}})(),R.datetime=(function(){const{fail:H}=R.fail||{},{MIN_YEAR:Q,MAX_YEAR:X}=R.validate||{};function ee(k,Y){return Y===2?k%4===0&&k%100!==0||k%400===0?29:28:[31,28,31,30,31,30,31,31,30,31,30,31][Y-1]}function Z(k,Y=""){const N=String(k??"").trim(),m=/^(\d{4})-(\d{1,2})-(\d{1,2})$/.exec(N);if(!m)return null;const y=Number(m[1]),v=Number(m[2]),P=Number(m[3]);if(v<1||v>12||P<1||P>ee(y,v))return null;if(y<Q||y>X){const d=Y?`${Y} `:"";throw H("E_RANGE",`${d}「${m[0]}」的年份超出可计算范围(${Q}–${X},收到 ${y} 年);农历与节气表不覆盖之外的年份`)}return{year:y,month:v,day:P}}function M(k){if(typeof k!="string"||!k.trim())throw H("E_INPUT","缺少 datetime(公历日期时间),例如 1990-05-12T14:30");const Y=k.trim().match(/^(\d{4})-(\d{1,2})-(\d{1,2})(?:[T\s](\d{1,2}):(\d{1,2})(?::(\d{1,2}))?)?$/);if(!Y)throw H("E_INPUT",`无法解析 datetime:「${k}」,请用 1990-05-12T14:30 这种格式`);if(Y[6]!==void 0&&Number(Y[6])>59)throw H("E_INPUT",`秒超出范围:${Y[6]}`);const N={year:Number(Y[1]),month:Number(Y[2]),day:Number(Y[3]),hour:Number(Y[4]??0),minute:Number(Y[5]??0)};if(N.month<1||N.month>12)throw H("E_INPUT",`月份超出范围:${N.month}`);const m=ee(N.year,N.month);if(N.day<1||N.day>m)throw H("E_INPUT",`日期不存在:${N.year}-${N.month}-${N.day}(${N.year} 年 ${N.month} 月只有 ${m} 天)`);if(N.hour>23||N.minute>59)throw H("E_INPUT",`时间超出范围:${N.hour}:${N.minute}`);if(N.year<Q||N.year>X)throw H("E_RANGE",`年份 ${N.year} 超出可计算范围(${Q}–${X})`);return(N.year<1900||N.year>2100)&&(N.precision={level:"approx",note:`ΔT 模型仅覆盖 1900–2100,${N.year} 年按端点值外推,节气与朔望时刻可能有分钟级偏差,月柱在交节前后需复核`}),N}return{daysInMonth:ee,parseYmd:Z,parseDateTime:M}})(),R.lru=(function(){function H({max:Q=64,ttlMs:X=0,name:ee="lru",now:Z=()=>Date.now()}={}){const M=new Map,k={name:ee,hits:0,misses:0,evictions:0,expirations:0},Y=N=>X>0&&Z()-N.at>X;return{name:ee,max:Q,ttlMs:X,get(N){const m=M.get(N);if(!m||Y(m)){m&&(M.delete(N),k.expirations+=1),k.misses+=1;return}return M.delete(N),M.set(N,m),k.hits+=1,m.value},set(N,m){for(M.has(N)&&M.delete(N),M.set(N,{value:m,at:Z()});M.size>Q;)M.delete(M.keys().next().value),k.evictions+=1;return m},has(N){const m=M.get(N);return m?Y(m)?(M.delete(N),k.expirations+=1,!1):!0:!1},delete(N){return M.delete(N)},clear(){M.clear()},get size(){return M.size},stats(){const N=k.hits+k.misses;return{name:ee,size:M.size,max:Q,hits:k.hits,misses:k.misses,evictions:k.evictions,expirations:k.expirations,hitRate:N?k.hits/N:0}}}}return{createLru:H}})(),R.nayin=(function(){const H=["海中金","炉中火","大林木","路旁土","剑锋金","山头火","涧下水","城头土","白蜡金","杨柳木","泉中水","屋上土","霹雳火","松柏木","长流水","沙中金","山下火","平地木","壁上土","金箔金","覆灯火","天河水","大驿土","钗钏金","桑柘木","大溪水","沙中土","天上火","石榴木","大海水"];function Q(X){const ee=(Number(X)%60+60)%60,Z=H[Math.floor(ee/2)];return{name:Z,element:Z[2]}}return{NAYIN_NAMES:H,nayinOf:Q}})(),R.sanhe=(function(){const H=[{branches:["申","子","辰"],element:"水"},{branches:["亥","卯","未"],element:"木"},{branches:["寅","午","戌"],element:"火"},{branches:["巳","酉","丑"],element:"金"}],Q=Object.fromEntries(H.map(Z=>[Z.branches.join(""),Z.element])),X=Object.fromEntries(H.flatMap(Z=>Z.branches.map(M=>[M,Z.element])));function ee(Z){return H.find(M=>M.branches.includes(Z))||null}return{SANHE_GROUPS:H,SANHE:Q,SANHE_ELEMENT:X,sanheGroupOf:ee}})(),R["vsop-earth"]=(function(){const H=[[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]],Q=[[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]],X=[[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]],ee=[[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]],Z=[[7714e-11,4.14117321449,6283.0758499914],[1016e-11,3.27573644241,12566.1516999828]];function M(k){let Y=0;for(const[m,y,v]of H)Y+=m*Math.cos(y+v*k);let N=1;for(const m of[Q,X,ee,Z]){N*=k;for(const[y,v,P]of m)Y+=y*N*Math.cos(v+P*k)}return Y}return{earthL:M}})(),R.calendar=(function(){const{earthL:H}=R["vsop-earth"]||{},{createLru:Q}=R.lru||{},{bool:X}=R.bool||{},ee=["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"],Z=["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"],M=["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"];function k(z){return(285+15*z)%360}function Y(z,C,U){const ae=Math.floor((14-C)/12),se=z+4800-ae,G=C+12*ae-3;return U+Math.floor((153*G+2)/5)+365*se+Math.floor(se/4)-Math.floor(se/100)+Math.floor(se/400)-32045}function N(z){const C=z+32044,U=Math.floor((4*C+3)/146097),ae=C-Math.floor(146097*U/4),se=Math.floor((4*ae+3)/1461),G=ae-Math.floor(1461*se/4),W=Math.floor((5*G+2)/153);return{year:100*U+se-4800+Math.floor(W/10),month:W+3-12*Math.floor(W/10),day:G-Math.floor((153*W+2)/5)+1}}function m(z,C){for(let U=0;U<60;U++)if(U%10===z&&U%12===C)return U;return-1}function y(z){const C=(z%60+60)%60;return{index:C,stem:ee[C%10],branch:Z[C%12],name:ee[C%10]+Z[C%12]}}function v(z){return((z+49)%60+60)%60}function P(z){const C=z-2451545,U=C/36525,ae=C/365250;let se=H(ae)*180/Math.PI+180;se=(se%360+360)%360;const G=(5029.0966*U+1.11113*U*U-6e-6*U*U*U)/3600;se+=G,se-=.09033/3600;const W=(125.04452-1934.136261*U)*Math.PI/180,ge=(280.4665+36000.7698*U)*Math.PI/180,me=(218.3165+481267.8813*U)*Math.PI/180,ze=(-17.2*Math.sin(W)-1.32*Math.sin(2*ge)-.23*Math.sin(2*me)+.21*Math.sin(2*W))/3600;se+=ze;const ne=(357.52911+35999.05029*U-1537e-7*U*U)*Math.PI/180,Te=.016708634-42037e-9*U-1267e-10*U*U,We=1.000001018*(1-Te*Te)/(1+Te*Math.cos(ne+(1.914602-.004817*U)*(Math.PI/180)*Math.sin(ne)));return se-=20.4898/3600/(We||1),(se%360+360)%360}function d(z){if(z<1900){const W=z;if(W<1600)return 120;if(W<1700){const me=W-1600;return 120-.9808*me-.01532*me*me+me*me*me/7129}if(W<1800){const me=W-1700;return 8.83+.1603*me-.0059285*me*me+13336e-8*me*me*me-me**4/1174e3}if(W<1860){const me=W-1800;return 13.72-.332447*me+.0068612*me*me+.0041116*me**3-37436e-8*me**4+121272e-10*me**5-1699e-10*me**6+875e-12*me**7}const ge=W-1860;return 7.62+.5737*ge-.251754*ge*ge+.01680668*ge**3-.0004473624*ge**4+ge**5/233174}const C=[[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(z<=C[0][0])return C[0][1];for(let W=1;W<C.length;W++)if(z<=C[W][0]){const[ge,me]=C[W-1],[ze,ne]=C[W];return me+(ne-me)*(z-ge)/(ze-ge)}const[U,ae]=C[C.length-1],se=(U-1820)/100,G=(z-1820)/100;return ae+32*(G*G-se*se)}const f=8/24,l=7.7611/24,x=2425612+4/24;function w(z){return z<x?l:f}const $=Q({max:4096,name:"termInstant"}),S=1e-5,i=new Map,h=365.2422;function u(z,C){const U=k(C),ae=Y(z,1,5)-.5+C*15.2184,se=i.get(C);let G=se!==void 0?se+h:ae;Math.abs(G-ae)>20&&(G=ae);for(let ge=0;ge<12;ge++){let me=U-P(G);if(me=((me+180)%360+360)%360-180,G+=me/.98564736,Math.abs(me)<S)break}i.set(C,G);const W=G-d(z)/86400;return W+w(W)}function p(z,C){const U=z*24+C,ae=$.get(U);if(ae!==void 0)return ae;const se=u(z,C);return $.set(U,se),se}function j(z){const C=Math.floor(z+.5),U=z+.5-C,ae=Math.min(1439,Math.floor(Math.round(U*86400)/60)),{year:se,month:G,day:W}=N(C);return{year:se,month:G,day:W,hour:Math.floor(ae/60),minute:ae%60}}function O({year:z,month:C,day:U,hour:ae=0,minute:se=0}){return Y(z,C,U)-.5+(ae*60+se)/1440}function D(z,C,U){const ae=Y(z,C,U)-Y(z,1,1)+1,se=2*Math.PI*(ae-81)/364;return 9.87*Math.sin(2*se)-7.53*Math.cos(se)-1.5*Math.sin(se)}const ie=Q({max:8,name:"termWindow"}),_=Q({max:32,name:"termYear"}),Me=Array.from({length:24},(z,C)=>C),Ye=Me.filter(z=>z%2===0);function a(z,C){const U=C?`${z}|jie`:`${z}|all`,ae=_.get(U);if(ae)return ae;if(C){const G=_.get(`${z}|all`);if(G){const W=G.filter(ge=>ge.index%2===0);return _.set(U,W),W}}const se=[];for(const G of C?Ye:Me)se.push({year:z,index:G,name:M[G],jd:p(z,G)});return se.sort((G,W)=>G.jd-W.jd),_.set(U,se),se}function T(z,C={}){const U=X(C.jieOnly),ae=U?`${z}|jie`:z,se=ie.get(ae);if(se)return se;const G=[...a(z-1,U),...a(z,U),...a(z+1,U)];return G.sort((W,ge)=>W.jd-ge.jd),ie.set(ae,G),G}function F(z){if(typeof z!="string"||z.length<2)return[];const C=ee.indexOf(z[0]),U=Z.indexOf(z[1]);if(C<0||U<0)return[];const ae=m(C,U);if(ae<0)return[];const se=Math.floor(ae/10)*10;return[Z[(se+10)%12],Z[(se+11)%12]]}function ue(z,C){let U=null;for(const ae of z)if(ae.index%2===0)if(ae.jd<=C)U=ae;else break;return U}function K(z,C){for(const U of z)if(U.index%2===0&&U.jd>C)return U;return null}function ce(z){const C=j(z),U=ae=>String(ae).padStart(2,"0");return`${C.year}-${U(C.month)}-${U(C.day)} ${U(C.hour)}:${U(C.minute)}`}function pe(){return[$.stats(),_.stats(),ie.stats()]}return{STEMS:ee,BRANCHES:Z,TERM_NAMES:M,termLongitude:k,toJDN:Y,fromJDN:N,sexagenaryIndex:m,ganzhiName:y,dayGanzhiIndex:v,sunLongitude:P,deltaTSeconds:d,OFFSET_MODERN:f,OFFSET_BEIJING_LOCAL:l,CUTOVER_JD:x,localOffsetFor:w,termInstantJd:p,jdToParts:j,partsToJd:O,equationOfTime:D,termWindow:T,xunKongOf:F,previousJie:ue,nextJie:K,formatJd:ce,cacheMetrics:pe}})(),R.lunar=(function(){const{toJDN:H,jdToParts:Q,termInstantJd:X,deltaTSeconds:ee,localOffsetFor:Z}=R.calendar||{},M=29.530588861,k=245155009766e-5,Y=Math.PI/180;function N(d){const f=d/1236.85,l=k+M*d+15437e-8*f*f-15e-8*f*f*f+73e-11*f*f*f*f,x=1-.002516*f-74e-7*f*f,w=(2.5534+29.1053567*d-14e-7*f*f-11e-8*f*f*f)*Y,$=(201.5643+385.81693528*d+.0107582*f*f+1238e-8*f*f*f-58e-9*f*f*f*f)*Y,S=(160.7108+390.67050284*d-.0016118*f*f-227e-8*f*f*f+11e-9*f*f*f*f)*Y,i=(124.7746-1.56375588*d+.0020672*f*f+215e-8*f*f*f)*Y,h=-.4072*Math.sin($)+.17241*x*Math.sin(w)+.01608*Math.sin(2*$)+.01039*Math.sin(2*S)+.00739*x*Math.sin($-w)-.00514*x*Math.sin($+w)+.00208*x*x*Math.sin(2*w)-.00111*Math.sin($-2*S)-57e-5*Math.sin($+2*S)+56e-5*x*Math.sin(2*$+w)-42e-5*Math.sin(3*$)+42e-5*x*Math.sin(w+2*S)+38e-5*x*Math.sin(w-2*S)-24e-5*x*Math.sin(2*$-w)-17e-5*Math.sin(i)-7e-5*Math.sin($+2*w)+4e-5*Math.sin(2*$-2*S)+4e-5*Math.sin(3*w)+3e-5*Math.sin($+w-2*S)+3e-5*Math.sin(2*$+2*S)-3e-5*Math.sin($+w+2*S)+3e-5*Math.sin($-w+2*S)-2e-5*Math.sin($-w-2*S)-2e-5*Math.sin(3*$+w)+2e-5*Math.sin(4*$),u=l+h-ee(2e3+f*100)/86400;return u+Z(u)}function m(d){return Math.floor(d+.5)}function y(d){return Math.round((d+.5-k)/M)}function v(d,f,l){for(let x=d-1;x<=d+1;x++)for(let w=1;w<24;w+=2){const $=X(x,w),S=m($);if(S>=f&&S<l)return{index:w,jd:$}}return null}function P(d,f,l){const x=H(d,f,l),w=m(X(d,23)),$=x<w?d-1:d,S=m(X($,23));let i=y(S);for(;m(N(i))>S;)i--;for(;m(N(i+1))<=S;)i++;const h=m(X($+1,23));let u=i;for(;m(N(u+1))<=h;)u++;const p=u-i;let j=-1;if(p===13)for(let ie=1;ie<=p;ie++){const _=m(N(i+ie-1)),Me=m(N(i+ie));if(!v($,_,Me)){j=ie;break}}let O=11,D=!1;for(let ie=1;ie<=15;ie++){const _=m(N(i+ie-1)),Me=m(N(i+ie)),Ye=v($,_,Me),a=ie===j;if(x>=_&&x<Me){const T=Q(N(i+ie-1)),F=a?(O+10)%12+1:O;return{year:$,lunarYear:D?$+1:$,month:F,day:x-_+1,isLeap:a,monthStart:`${T.year}-${String(T.month).padStart(2,"0")}-${String(T.day).padStart(2,"0")}`,hasZhongQi:!!Ye}}a||(O=O%12+1,O===1&&(D=!0))}throw new Error(`农历换算失败:${d}-${f}-${l}`)}return{SYNODIC:M,newMoonJd:N,dayNumberOf:m,solarToLunar:P}})(),R.geo=(function(){const{bool:H}=R.bool||{},Q=`
|
|
4
4
|
北京 116.41 39.90;上海 121.47 31.23;天津 117.20 39.13;重庆 106.55 29.56
|