liuyao 0.5.0 → 0.5.1

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.
@@ -1,4 +1,4 @@
1
- # 六爻卦象解析技能 `v0.5.0`
1
+ # 六爻卦象解析技能 `v0.5.1`
2
2
 
3
3
  **你是等同于野鹤老人水平的优秀六爻占卜师。本技能包含装挂脚本和解卦指导txt文件,请你按流程指引操作。**
4
4
 
@@ -1 +1 @@
1
- var e=[19416,19168,42352,21717,53856,55632,91476,22176,39632,21970,19168,42422,42192,53840,119381,46400,54944,44450,38320,84343,18800,42160,46261,27216,27968,109396,11104,38256,21234,18800,25958,54432,59984,28309,23248,11104,100067,37600,116951,51536,54432,120998,46416,22176,107956,9680,37584,53938,43344,46423,27808,46416,86869,19872,42416,83315,21168,43432,59728,27296,44710,43856,19296,43748,42352,21088,62051,55632,23383,22176,38608,19925,19152,42192,54484,53840,54616,46400,46752,103846,38320,18864,43380,42160,45690,27216,27968,44870,43872,38256,19189,18800,25776,29859,59984,27480,23232,43872,38613,37600,51552,55636,54432,55888,30034,22176,43959,9680,37584,51893,43344,46240,47780,44368,21977,19360,42416,86390,21168,43312,31060,27296,44368,23378,19296,42726,42208,53856,60005,54576,23200,30371,38608,19195,19152,42192,118966,53840,54560,56645,46496,22224,21938,18864,42359,42160,43600,111189,27936,44448,84835,37744,18936,18800,25776,92326,59984,27424,108228,43744,37600,53987,51552,54615,54432,55888,23893,22176,42704,21972,21200,43448,43344,46240,46758,44368,21920,43940,42416,21168,45683,26928,29495,27296,44368,84821,19296,42352,21732,53600,59752,54560,55968,92838,22224,19168,43476,42192,53584,62034,54560],t=[31,28,31,30,31,30,31,31,30,31,30,31],n=[`甲`,`乙`,`丙`,`丁`,`戊`,`己`,`庚`,`辛`,`壬`,`癸`],r=[`子`,`丑`,`寅`,`卯`,`辰`,`巳`,`午`,`未`,`申`,`酉`,`戌`,`亥`],i=[`鼠`,`牛`,`虎`,`兔`,`龙`,`蛇`,`马`,`羊`,`猴`,`鸡`,`狗`,`猪`],a=[`小寒`,`大寒`,`立春`,`雨水`,`惊蛰`,`春分`,`清明`,`谷雨`,`立夏`,`小满`,`芒种`,`夏至`,`小暑`,`大暑`,`立秋`,`处暑`,`白露`,`秋分`,`寒露`,`霜降`,`立冬`,`小雪`,`大雪`,`冬至`],o=`9778397bd097c36b0b6fc9274c91aa.97b6b97bd19801ec9210c965cc920e.97bcf97c3598082c95f8c965cc920f.97bd0b06bdb0722c965ce1cfcc920f.b027097bd097c36b0b6fc9274c91aa.97b6b97bd19801ec9210c965cc920e.97bcf97c359801ec95f8c965cc920f.97bd0b06bdb0722c965ce1cfcc920f.b027097bd097c36b0b6fc9274c91aa.97b6b97bd19801ec9210c965cc920e.97bcf97c359801ec95f8c965cc920f.97bd0b06bdb0722c965ce1cfcc920f.b027097bd097c36b0b6fc9274c91aa.9778397bd19801ec9210c965cc920e.97b6b97bd19801ec95f8c965cc920f.97bd09801d98082c95f8e1cfcc920f.97bd097bd097c36b0b6fc9210c8dc2.9778397bd197c36c9210c9274c91aa.97b6b97bd19801ec95f8c965cc920e.97bd09801d98082c95f8e1cfcc920f.97bd097bd097c36b0b6fc9210c8dc2.9778397bd097c36c9210c9274c91aa.97b6b97bd19801ec95f8c965cc920e.97bcf97c3598082c95f8e1cfcc920f.97bd097bd097c36b0b6fc9210c8dc2.9778397bd097c36c9210c9274c91aa.97b6b97bd19801ec9210c965cc920e.97bcf97c3598082c95f8c965cc920f.97bd097bd097c35b0b6fc920fb0722.9778397bd097c36b0b6fc9274c91aa.97b6b97bd19801ec9210c965cc920e.97bcf97c3598082c95f8c965cc920f.97bd097bd097c35b0b6fc920fb0722.9778397bd097c36b0b6fc9274c91aa.97b6b97bd19801ec9210c965cc920e.97bcf97c359801ec95f8c965cc920f.97bd097bd097c35b0b6fc920fb0722.9778397bd097c36b0b6fc9274c91aa.97b6b97bd19801ec9210c965cc920e.97bcf97c359801ec95f8c965cc920f.97bd097bd097c35b0b6fc920fb0722.9778397bd097c36b0b6fc9274c91aa.97b6b97bd19801ec9210c965cc920e.97bcf97c359801ec95f8c965cc920f.97bd097bd07f595b0b6fc920fb0722.9778397bd097c36b0b6fc9210c8dc2.9778397bd19801ec9210c9274c920e.97b6b97bd19801ec95f8c965cc920f.97bd07f5307f595b0b0bc920fb0722.7f0e397bd097c36b0b6fc9210c8dc2.9778397bd097c36c9210c9274c920e.97b6b97bd19801ec95f8c965cc920f.97bd07f5307f595b0b0bc920fb0722.7f0e397bd097c36b0b6fc9210c8dc2.9778397bd097c36c9210c9274c91aa.97b6b97bd19801ec9210c965cc920e.97bd07f1487f595b0b0bc920fb0722.7f0e397bd097c36b0b6fc9210c8dc2.9778397bd097c36b0b6fc9274c91aa.97b6b97bd19801ec9210c965cc920e.97bcf7f1487f595b0b0bb0b6fb0722.7f0e397bd097c35b0b6fc920fb0722.9778397bd097c36b0b6fc9274c91aa.97b6b97bd19801ec9210c965cc920e.97bcf7f1487f595b0b0bb0b6fb0722.7f0e397bd097c35b0b6fc920fb0722.9778397bd097c36b0b6fc9274c91aa.97b6b97bd19801ec9210c965cc920e.97bcf7f1487f531b0b0bb0b6fb0722.7f0e397bd097c35b0b6fc920fb0722.9778397bd097c36b0b6fc9274c91aa.97b6b97bd19801ec9210c965cc920e.97bcf7f1487f531b0b0bb0b6fb0722.7f0e397bd07f595b0b6fc920fb0722.9778397bd097c36b0b6fc9274c91aa.97b6b97bd19801ec9210c9274c920e.97bcf7f0e47f531b0b0bb0b6fb0722.7f0e397bd07f595b0b0bc920fb0722.9778397bd097c36b0b6fc9210c91aa.97b6b97bd197c36c9210c9274c920e.97bcf7f0e47f531b0b0bb0b6fb0722.7f0e397bd07f595b0b0bc920fb0722.9778397bd097c36b0b6fc9210c8dc2.9778397bd097c36c9210c9274c920e.97b6b7f0e47f531b0723b0b6fb0722.7f0e37f5307f595b0b0bc920fb0722.7f0e397bd097c36b0b6fc9210c8dc2.9778397bd097c36b0b70c9274c91aa.97b6b7f0e47f531b0723b0b6fb0721.7f0e37f1487f595b0b0bb0b6fb0722.7f0e397bd097c35b0b6fc9210c8dc2.9778397bd097c36b0b6fc9274c91aa.97b6b7f0e47f531b0723b0b6fb0721.7f0e27f1487f595b0b0bb0b6fb0722.7f0e397bd097c35b0b6fc920fb0722.9778397bd097c36b0b6fc9274c91aa.97b6b7f0e47f531b0723b0b6fb0721.7f0e27f1487f531b0b0bb0b6fb0722.7f0e397bd097c35b0b6fc920fb0722.9778397bd097c36b0b6fc9274c91aa.97b6b7f0e47f531b0723b0b6fb0721.7f0e27f1487f531b0b0bb0b6fb0722.7f0e397bd097c35b0b6fc920fb0722.9778397bd097c36b0b6fc9274c91aa.97b6b7f0e47f531b0723b0b6fb0721.7f0e27f1487f531b0b0bb0b6fb0722.7f0e397bd07f595b0b0bc920fb0722.9778397bd097c36b0b6fc9274c91aa.97b6b7f0e47f531b0723b0787b0721.7f0e27f0e47f531b0b0bb0b6fb0722.7f0e397bd07f595b0b0bc920fb0722.9778397bd097c36b0b6fc9210c91aa.97b6b7f0e47f149b0723b0787b0721.7f0e27f0e47f531b0723b0b6fb0722.7f0e397bd07f595b0b0bc920fb0722.9778397bd097c36b0b6fc9210c8dc2.977837f0e37f149b0723b0787b0721.7f07e7f0e47f531b0723b0b6fb0722.7f0e37f5307f595b0b0bc920fb0722.7f0e397bd097c35b0b6fc9210c8dc2.977837f0e37f14998082b0787b0721.7f07e7f0e47f531b0723b0b6fb0721.7f0e37f1487f595b0b0bb0b6fb0722.7f0e397bd097c35b0b6fc9210c8dc2.977837f0e37f14998082b0787b06bd.7f07e7f0e47f531b0723b0b6fb0721.7f0e27f1487f531b0b0bb0b6fb0722.7f0e397bd097c35b0b6fc920fb0722.977837f0e37f14998082b0787b06bd.7f07e7f0e47f531b0723b0b6fb0721.7f0e27f1487f531b0b0bb0b6fb0722.7f0e397bd097c35b0b6fc920fb0722.977837f0e37f14998082b0787b06bd.7f07e7f0e47f531b0723b0b6fb0721.7f0e27f1487f531b0b0bb0b6fb0722.7f0e397bd07f595b0b0bc920fb0722.977837f0e37f14998082b0787b06bd.7f07e7f0e47f531b0723b0b6fb0721.7f0e27f1487f531b0b0bb0b6fb0722.7f0e397bd07f595b0b0bc920fb0722.977837f0e37f14998082b0787b06bd.7f07e7f0e47f149b0723b0787b0721.7f0e27f0e47f531b0b0bb0b6fb0722.7f0e397bd07f595b0b0bc920fb0722.977837f0e37f14998082b0723b06bd.7f07e7f0e37f149b0723b0787b0721.7f0e27f0e47f531b0723b0b6fb0722.7f0e397bd07f595b0b0bc920fb0722.977837f0e37f14898082b0723b02d5.7ec967f0e37f14998082b0787b0721.7f07e7f0e47f531b0723b0b6fb0722.7f0e37f1487f595b0b0bb0b6fb0722.7f0e37f0e37f14898082b0723b02d5.7ec967f0e37f14998082b0787b0721.7f07e7f0e47f531b0723b0b6fb0722.7f0e37f1487f531b0b0bb0b6fb0722.7f0e37f0e37f14898082b0723b02d5.7ec967f0e37f14998082b0787b06bd.7f07e7f0e47f531b0723b0b6fb0721.7f0e37f1487f531b0b0bb0b6fb0722.7f0e37f0e37f14898082b072297c35.7ec967f0e37f14998082b0787b06bd.7f07e7f0e47f531b0723b0b6fb0721.7f0e27f1487f531b0b0bb0b6fb0722.7f0e37f0e37f14898082b072297c35.7ec967f0e37f14998082b0787b06bd.7f07e7f0e47f531b0723b0b6fb0721.7f0e27f1487f531b0b0bb0b6fb0722.7f0e37f0e366aa89801eb072297c35.7ec967f0e37f14998082b0787b06bd.7f07e7f0e47f149b0723b0787b0721.7f0e27f1487f531b0b0bb0b6fb0722.7f0e37f0e366aa89801eb072297c35.7ec967f0e37f14998082b0723b06bd.7f07e7f0e47f149b0723b0787b0721.7f0e27f0e47f531b0723b0b6fb0722.7f0e37f0e366aa89801eb072297c35.7ec967f0e37f14998082b0723b06bd.7f07e7f0e37f14998083b0787b0721.7f0e27f0e47f531b0723b0b6fb0722.7f0e37f0e366aa89801eb072297c35.7ec967f0e37f14898082b0723b02d5.7f07e7f0e37f14998082b0787b0721.7f07e7f0e47f531b0723b0b6fb0722.7f0e36665b66aa89801e9808297c35.665f67f0e37f14898082b0723b02d5.7ec967f0e37f14998082b0787b0721.7f07e7f0e47f531b0723b0b6fb0722.7f0e36665b66a449801e9808297c35.665f67f0e37f14898082b0723b02d5.7ec967f0e37f14998082b0787b06bd.7f07e7f0e47f531b0723b0b6fb0721.7f0e36665b66a449801e9808297c35.665f67f0e37f14898082b072297c35.7ec967f0e37f14998082b0787b06bd.7f07e7f0e47f531b0723b0b6fb0721.7f0e26665b66a449801e9808297c35.665f67f0e37f1489801eb072297c35.7ec967f0e37f14998082b0787b06bd.7f07e7f0e47f531b0723b0b6fb0721.7f0e27f1487f531b0b0bb0b6fb0722`.split(`.`),s=[`日`,`一`,`二`,`三`,`四`,`五`,`六`,`七`,`八`,`九`,`十`],c=[`初`,`十`,`廿`,`卅`],l=[`正`,`二`,`三`,`四`,`五`,`六`,`七`,`八`,`九`,`十`,`冬`,`腊`],u=[`零`,`一`,`二`,`三`,`四`,`五`,`六`,`七`,`八`,`九`,`十`];const d={lunarInfo:e,solarMonth:t,gan:n,zhi:r,animals:i,lunarTerm:a,lTermInfo:o,nStr1:s,nStr2:c,nStr3:l,nStr4:u,lYearDays(t){let n=348,r=e[t-1900];return n+=r&32768?1:0,n+=r&16384?1:0,n+=r&8192?1:0,n+=r&4096?1:0,n+=r&2048?1:0,n+=r&1024?1:0,n+=r&512?1:0,n+=r&256?1:0,n+=r&128?1:0,n+=r&64?1:0,n+=r&32?1:0,n+=r&16?1:0,n+d.leapDays(t)},leapMonth(t){return e[t-1900]&15},leapDays(t){return d.leapMonth(t)?e[t-1900]&65536?30:29:0},monthDays(t,n){return n>12||n<1?-1:e[t-1900]&65536>>n?30:29},getShiChen(e,t){let i=(e+1)/2>=24?0:Math.floor((e+1)/2)%12;return n[(t*2+i)%10]+r[i]},solarDays(e,n){if(n>12||n<1)return-1;let r=n-1;return r===1?e%4==0&&e%100!=0||e%400==0?29:28:t[r]},toGanZhi(e){return n[e%10]+r[e%12]},getTerm(e,t){if(e<1900||e>2100||t<1||t>24)return-1;let n=o[e-1900],r=[parseInt(`0x`+n.substr(0,5)).toString(),parseInt(`0x`+n.substr(5,5)).toString(),parseInt(`0x`+n.substr(10,5)).toString(),parseInt(`0x`+n.substr(15,5)).toString(),parseInt(`0x`+n.substr(20,5)).toString(),parseInt(`0x`+n.substr(25,5)).toString()],i=[r[0].substr(0,1),r[0].substr(1,2),r[0].substr(3,1),r[0].substr(4,2),r[1].substr(0,1),r[1].substr(1,2),r[1].substr(3,1),r[1].substr(4,2),r[2].substr(0,1),r[2].substr(1,2),r[2].substr(3,1),r[2].substr(4,2),r[3].substr(0,1),r[3].substr(1,2),r[3].substr(3,1),r[3].substr(4,2),r[4].substr(0,1),r[4].substr(1,2),r[4].substr(3,1),r[4].substr(4,2),r[5].substr(0,1),r[5].substr(1,2),r[5].substr(3,1),r[5].substr(4,2)];return parseInt(i[t-1])},toChinaYear(e){let t=Math.floor(e/1e3),n=Math.floor(e%1e3/100),r=Math.floor(e%100/10),i=e%10;return u[t]+u[n]+u[r]+u[i]+`年`},toChinaMonth(e){if(e>12||e<1)return-1;let t=l[e-1];return t+=`月`,t},toChinaDay(e){let t=``;switch(e){case 10:t=`初十`;break;case 20:t=`二十`;break;case 30:t=`三十`;break;default:t=c[Math.floor(e/10)],t+=s[e%10]}return t},getAnimal(e,t,n){if(t!==void 0&&n!==void 0){let r=d.getTerm(e,3);(t<2||t===2&&n<r)&&--e}return i[(e-4)%12]},solar2lunar(e,t,n){if(e==null||t==null||n==null){let r=new Date;e=r.getFullYear(),t=r.getMonth()+1,n=r.getDate()}if(e=Number(e),t=Number(t),n=Number(n),isNaN(e)||isNaN(t)||isNaN(n)||e<1900||e>2100||e===1900&&t===1&&n<31||t<1||t>12)return-1;let r=d.solarDays(e,t);if(n<1||n>r)return-1;let i=new Date(e,parseInt(t)-1,n),o,c=0;e=i.getFullYear(),t=i.getMonth()+1,n=i.getDate();let l=(Date.UTC(i.getFullYear(),i.getMonth(),i.getDate())-Date.UTC(1900,0,31))/864e5;for(c=0,o=1900;o<2101&&l>0;o++)c=d.lYearDays(o),l-=c;l<0&&(l+=c,o--);let u=o,f=new Date,p=!1;f.getFullYear()===e&&f.getMonth()+1===t&&f.getDate()===n&&(p=!0);let m=i.getDay(),h=s[m],g=m===0?7:m,_=u,v=d.leapMonth(u),y=!1;for(o=1;o<13&&l>0;o++)v>0&&o===v+1&&y===!1?(--o,y=!0,c=d.leapDays(_)):c=d.monthDays(_,o),y===!0&&o===v+1&&(y=!1),l-=c;l===0&&v>0&&o===v+1&&(y?y=!1:(y=!0,--o)),l<0&&(l+=c,--o);let b=o,x=l+1,S=t-1,C=d.getTerm(e,3),w=d.toGanZhi(e-4);(t<2||t===2&&n<C)&&(w=d.toGanZhi(e-1-4));let T=d.getTerm(e,t*2-1),E=d.getTerm(e,t*2),D=d.toGanZhi((e-1900)*12+t+11);n>=T&&(D=d.toGanZhi((e-1900)*12+t+12));let O=!1,k=``;T===n&&(O=!0,k=a[t*2-2]),E===n&&(O=!0,k=a[t*2-1]);let A=Date.UTC(e,S,1,0,0,0,0)/864e5+25567+10,j=d.toGanZhi(A+n-1);return{lYear:_,lMonth:b,lDay:x,animal:d.getAnimal(_),yearCn:d.toChinaYear(_),monthCn:(y&&v===b?`闰`:``)+d.toChinaMonth(b),dayCn:d.toChinaDay(x),cYear:e,cMonth:t,cDay:n,gzYear:w,gzMonth:D,gzDay:j,isToday:p,isLeap:y,nWeek:g,ncWeek:`星期`+h,isTerm:O,term:k}},lunar2solar(e,t,n,r){if(e=Number(e),t=Number(t),n=Number(n),r=!!r,isNaN(e)||isNaN(t)||isNaN(n))return-1;let i=d.leapMonth(e);if(r&&i!==t||e===2100&&t===12&&n>1||e===1900&&t===1&&n<31)return-1;let a=d.monthDays(e,t);if(e<1900||e>2100||n>a)return-1;let o=0;for(let t=1900;t<e;t++)o+=d.lYearDays(t);let s=0,c=!1;for(let n=1;n<t;n++)s=d.leapMonth(e),c||s<=n&&s>0&&(o+=d.leapDays(e),c=!0),o+=d.monthDays(e,n);r&&(o+=a);let l=Date.UTC(1900,1,30,0,0,0),u=new Date((o+n-31)*864e5+l),f=u.getUTCFullYear(),p=u.getUTCMonth()+1,m=u.getUTCDate();return d.solar2lunar(f,p,m)},getFestivals(e,t,n){let r=[],i=d.solar2lunar(e,t,n);if(i===-1)return r;let{lMonth:a,lDay:o}=i,s={"1-1":`春节`,"1-15":`元宵节`,"5-5":`端午节`,"7-7":`七夕节`,"8-15":`中秋节`,"9-9":`重阳节`,"12-8":`腊八节`,"12-23":`小年`},c=`${a}-${o}`;return s[c]&&r.push(s[c]),a===1&&o===1&&r.push(`农历新年`),d.customFestivals&&d.customFestivals.forEach(e=>{e.month===a&&e.day===o&&r.push(e.name)}),r},addFestival(e,t,n){d.customFestivals||=[],d.customFestivals.push({name:e,month:t,day:n})},clearFestivals(){d.customFestivals=[]}},f=[`本宫卦`,`一世卦`,`二世卦`,`三世卦`,`四世卦`,`五世卦`,`游魂卦`,`归魂卦`],p=[{binary:`000000`,id:`坤为地`,sign:`䷁`,phase:`土`,palace:`坤`,generation:0,yangs:[2,2,2,2,2,2],name:`地`},{binary:`100000`,id:`地雷复`,sign:`䷗`,phase:`土`,palace:`坤`,generation:1,yangs:[1,2,2,2,2,2],name:`复`},{binary:`010000`,id:`地水师`,sign:`䷆`,phase:`水`,palace:`坎`,generation:7,yangs:[2,1,2,2,2,2],name:`师`},{binary:`110000`,id:`地泽临`,sign:`䷒`,phase:`土`,palace:`坤`,generation:2,yangs:[1,1,2,2,2,2],name:`临`},{binary:`001000`,id:`地山谦`,sign:`䷎`,phase:`土`,palace:`兑`,generation:5,yangs:[2,2,1,2,2,2],name:`谦`},{binary:`101000`,id:`地火明夷`,sign:`䷣`,phase:`水`,palace:`坎`,generation:6,yangs:[1,2,1,2,2,2],name:`明夷`},{binary:`011000`,id:`地风升`,sign:`䷭`,phase:`木`,palace:`震`,generation:4,yangs:[2,1,1,2,2,2],name:`升`},{binary:`111000`,id:`地天泰`,sign:`䷊`,phase:`土`,palace:`坤`,generation:3,yangs:[1,1,1,2,2,2],name:`泰`},{binary:`000100`,id:`雷地豫`,sign:`䷏`,phase:`木`,palace:`震`,generation:1,yangs:[2,2,2,1,2,2],name:`豫`},{binary:`100100`,id:`震为雷`,sign:`䷲`,phase:`木`,palace:`震`,generation:0,yangs:[1,2,2,1,2,2],name:`雷`},{binary:`010100`,id:`雷水解`,sign:`䷧`,phase:`木`,palace:`震`,generation:2,yangs:[2,1,2,1,2,2],name:`解`},{binary:`110100`,id:`雷泽归妹`,sign:`䷵`,phase:`金`,palace:`兑`,generation:7,yangs:[1,1,2,1,2,2],name:`归妹`},{binary:`001100`,id:`雷山小过`,sign:`䷽`,phase:`金`,palace:`兑`,generation:6,yangs:[2,2,1,1,2,2],name:`小过`},{binary:`101100`,id:`雷火丰`,sign:`䷶`,phase:`水`,palace:`坎`,generation:5,yangs:[1,2,1,1,2,2],name:`丰`},{binary:`011100`,id:`雷风恒`,sign:`䷟`,phase:`木`,palace:`震`,generation:3,yangs:[2,1,1,1,2,2],name:`恒`},{binary:`111100`,id:`雷天大壮`,sign:`䷡`,phase:`土`,palace:`坤`,generation:4,yangs:[1,1,1,1,2,2],name:`大壮`},{binary:`000010`,id:`水地比`,sign:`䷇`,phase:`土`,palace:`坤`,generation:7,yangs:[2,2,2,2,1,2],name:`比`},{binary:`100010`,id:`水雷屯`,sign:`䷂`,phase:`水`,palace:`坎`,generation:2,yangs:[1,2,2,2,1,2],name:`屯`},{binary:`010010`,id:`坎为水`,sign:`䷜`,phase:`水`,palace:`坎`,generation:0,yangs:[2,1,2,2,1,2],name:`水`},{binary:`110010`,id:`水泽节`,sign:`䷻`,phase:`水`,palace:`坎`,generation:1,yangs:[1,1,2,2,1,2],name:`节`},{binary:`001010`,id:`水山蹇`,sign:`䷦`,phase:`金`,palace:`兑`,generation:4,yangs:[2,2,1,2,1,2],name:`蹇`},{binary:`101010`,id:`水火既济`,sign:`䷾`,phase:`水`,palace:`坎`,generation:3,yangs:[1,2,1,2,1,2],name:`既济`},{binary:`011010`,id:`水风井`,sign:`䷯`,phase:`木`,palace:`震`,generation:5,yangs:[2,1,1,2,1,2],name:`井`},{binary:`111010`,id:`水天需`,sign:`䷄`,phase:`土`,palace:`坤`,generation:6,yangs:[1,1,1,2,1,2],name:`需`},{binary:`000110`,id:`泽地萃`,sign:`䷬`,phase:`金`,palace:`兑`,generation:2,yangs:[2,2,2,1,1,2],name:`萃`},{binary:`100110`,id:`泽雷随`,sign:`䷐`,phase:`木`,palace:`震`,generation:7,yangs:[1,2,2,1,1,2],name:`随`},{binary:`010110`,id:`泽水困`,sign:`䷮`,phase:`金`,palace:`兑`,generation:1,yangs:[2,1,2,1,1,2],name:`困`},{binary:`110110`,id:`兑为泽`,sign:`䷹`,phase:`金`,palace:`兑`,generation:0,yangs:[1,1,2,1,1,2],name:`泽`},{binary:`001110`,id:`泽山咸`,sign:`䷞`,phase:`金`,palace:`兑`,generation:3,yangs:[2,2,1,1,1,2],name:`咸`},{binary:`101110`,id:`泽火革`,sign:`䷰`,phase:`水`,palace:`坎`,generation:4,yangs:[1,2,1,1,1,2],name:`革`},{binary:`011110`,id:`泽风大过`,sign:`䷛`,phase:`木`,palace:`震`,generation:6,yangs:[2,1,1,1,1,2],name:`大过`},{binary:`111110`,id:`泽天夬`,sign:`䷪`,phase:`土`,palace:`坤`,generation:5,yangs:[1,1,1,1,1,2],name:`夬`},{binary:`000001`,id:`山地剥`,sign:`䷖`,phase:`金`,palace:`乾`,generation:5,yangs:[2,2,2,2,2,1],name:`剥`},{binary:`100001`,id:`山雷颐`,sign:`䷚`,phase:`木`,palace:`巽`,generation:6,yangs:[1,2,2,2,2,1],name:`颐`},{binary:`010001`,id:`山水蒙`,sign:`䷃`,phase:`火`,palace:`离`,generation:4,yangs:[2,1,2,2,2,1],name:`蒙`},{binary:`110001`,id:`山泽损`,sign:`䷨`,phase:`土`,palace:`艮`,generation:3,yangs:[1,1,2,2,2,1],name:`损`},{binary:`001001`,id:`艮为山`,sign:`䷳`,phase:`土`,palace:`艮`,generation:0,yangs:[2,2,1,2,2,1],name:`山`},{binary:`101001`,id:`山火贲`,sign:`䷕`,phase:`土`,palace:`艮`,generation:1,yangs:[1,2,1,2,2,1],name:`贲`},{binary:`011001`,id:`山风蛊`,sign:`䷑`,phase:`木`,palace:`巽`,generation:7,yangs:[2,1,1,2,2,1],name:`蛊`},{binary:`111001`,id:`山天大畜`,sign:`䷙`,phase:`土`,palace:`艮`,generation:2,yangs:[1,1,1,2,2,1],name:`大畜`},{binary:`000101`,id:`火地晋`,sign:`䷢`,phase:`金`,palace:`乾`,generation:6,yangs:[2,2,2,1,2,1],name:`晋`},{binary:`100101`,id:`火雷噬嗑`,sign:`䷔`,phase:`木`,palace:`巽`,generation:5,yangs:[1,2,2,1,2,1],name:`噬嗑`},{binary:`010101`,id:`火水未济`,sign:`䷿`,phase:`火`,palace:`离`,generation:3,yangs:[2,1,2,1,2,1],name:`未济`},{binary:`110101`,id:`火泽睽`,sign:`䷥`,phase:`土`,palace:`艮`,generation:4,yangs:[1,1,2,1,2,1],name:`睽`},{binary:`001101`,id:`火山旅`,sign:`䷷`,phase:`火`,palace:`离`,generation:1,yangs:[2,2,1,1,2,1],name:`旅`},{binary:`101101`,id:`离为火`,sign:`䷝`,phase:`火`,palace:`离`,generation:0,yangs:[1,2,1,1,2,1],name:`火`},{binary:`011101`,id:`火风鼎`,sign:`䷱`,phase:`火`,palace:`离`,generation:2,yangs:[2,1,1,1,2,1],name:`鼎`},{binary:`111101`,id:`火天大有`,sign:`䷍`,phase:`金`,palace:`乾`,generation:7,yangs:[1,1,1,1,2,1],name:`大有`},{binary:`000011`,id:`风地观`,sign:`䷓`,phase:`金`,palace:`乾`,generation:4,yangs:[2,2,2,2,1,1],name:`观`},{binary:`100011`,id:`风雷益`,sign:`䷩`,phase:`木`,palace:`巽`,generation:3,yangs:[1,2,2,2,1,1],name:`益`},{binary:`010011`,id:`风水涣`,sign:`䷺`,phase:`火`,palace:`离`,generation:5,yangs:[2,1,2,2,1,1],name:`涣`},{binary:`110011`,id:`风泽中孚`,sign:`䷼`,phase:`土`,palace:`艮`,generation:6,yangs:[1,1,2,2,1,1],name:`中孚`},{binary:`001011`,id:`风山渐`,sign:`䷴`,phase:`土`,palace:`艮`,generation:7,yangs:[2,2,1,2,1,1],name:`渐`},{binary:`101011`,id:`风火家人`,sign:`䷤`,phase:`木`,palace:`巽`,generation:2,yangs:[1,2,1,2,1,1],name:`家人`},{binary:`011011`,id:`巽为风`,sign:`䷸`,phase:`木`,palace:`巽`,generation:0,yangs:[2,1,1,2,1,1],name:`风`},{binary:`111011`,id:`风天小畜`,sign:`䷈`,phase:`木`,palace:`巽`,generation:1,yangs:[1,1,1,2,1,1],name:`小畜`},{binary:`000111`,id:`天地否`,sign:`䷋`,phase:`金`,palace:`乾`,generation:3,yangs:[2,2,2,1,1,1],name:`否`},{binary:`100111`,id:`天雷无妄`,sign:`䷘`,phase:`木`,palace:`巽`,generation:4,yangs:[1,2,2,1,1,1],name:`无妄`},{binary:`010111`,id:`天水讼`,sign:`䷅`,phase:`火`,palace:`离`,generation:6,yangs:[2,1,2,1,1,1],name:`讼`},{binary:`110111`,id:`天泽履`,sign:`䷉`,phase:`土`,palace:`艮`,generation:5,yangs:[1,1,2,1,1,1],name:`履`},{binary:`001111`,id:`天山遁`,sign:`䷠`,phase:`金`,palace:`乾`,generation:2,yangs:[2,2,1,1,1,1],name:`遁`},{binary:`101111`,id:`天火同人`,sign:`䷌`,phase:`火`,palace:`离`,generation:7,yangs:[1,2,1,1,1,1],name:`同人`},{binary:`011111`,id:`天风姤`,sign:`䷫`,phase:`金`,palace:`乾`,generation:1,yangs:[2,1,1,1,1,1],name:`姤`},{binary:`111111`,id:`乾为天`,sign:`䷀`,phase:`金`,palace:`乾`,generation:0,yangs:[1,1,1,1,1,1],name:`天`}],m=[{id:`坤`,binary:`000`,yangs:0,image:`地`,sign:`☷`,inner:[`未土`,`巳火`,`卯木`],outer:[`丑土`,`亥水`,`酉金`]},{id:`震`,binary:`100`,yangs:1,image:`雷`,sign:`☳`,inner:[`子水`,`寅木`,`辰土`],outer:[`午火`,`申金`,`戌土`]},{id:`坎`,binary:`010`,yangs:1,image:`水`,sign:`☵`,inner:[`寅木`,`辰土`,`午火`],outer:[`申金`,`戌土`,`子水`]},{id:`兑`,binary:`110`,yangs:2,image:`泽`,sign:`☱`,inner:[`巳火`,`卯木`,`丑土`],outer:[`亥水`,`酉金`,`未土`]},{id:`艮`,binary:`001`,yangs:1,image:`山`,sign:`☶`,inner:[`辰土`,`午火`,`申金`],outer:[`戌土`,`子水`,`寅木`]},{id:`离`,binary:`101`,yangs:2,image:`火`,sign:`☲`,inner:[`卯木`,`丑土`,`亥水`],outer:[`酉金`,`未土`,`巳火`]},{id:`巽`,binary:`011`,yangs:2,image:`风`,sign:`☴`,inner:[`丑土`,`亥水`,`酉金`],outer:[`未土`,`巳火`,`卯木`]},{id:`乾`,binary:`111`,yangs:3,image:`天`,sign:`☰`,inner:[`子水`,`寅木`,`辰土`],outer:[`午火`,`申金`,`戌土`]}];Object.freeze(f),Object.freeze(p),Object.freeze(m);const h={乾:{inner:`甲`,outer:`壬`},坤:{inner:`乙`,outer:`癸`},兑:{inner:`丁`,outer:`丁`},坎:{inner:`戊`,outer:`戊`},艮:{inner:`丙`,outer:`丙`},离:{inner:`己`,outer:`己`},震:{inner:`庚`,outer:`庚`},巽:{inner:`辛`,outer:`辛`}};function g(e){let t=h[e.inner.id].inner,n=h[e.outer.id].outer;return[t,t,t,n,n,n]}const _=[5,0,1,2,3,4,3,2],v=[2,3,4,5,0,1,0,5];function y(e){return{host:_[e.generation],guest:v[e.generation]}}function b(e,t,n,r,i,a,o,s,c,l,u){if(e.includes(t))return n;if(e.includes(r))return i;if(e.includes(a))return o;if(e.includes(s))return c;if(e.includes(l))return u;throw Error(`No BranchPhase[${e}] matches phase[${t},${r},${a},${s},${l}]`)}const x={乾:e=>b(e,`金`,`兄弟`,`土`,`父母`,`木`,`妻财`,`火`,`官鬼`,`水`,`子孙`),兑:e=>b(e,`金`,`兄弟`,`土`,`父母`,`木`,`妻财`,`火`,`官鬼`,`水`,`子孙`),坎:e=>b(e,`木`,`子孙`,`水`,`兄弟`,`金`,`父母`,`火`,`妻财`,`土`,`官鬼`),坤:e=>b(e,`土`,`兄弟`,`火`,`父母`,`木`,`官鬼`,`水`,`妻财`,`金`,`子孙`),艮:e=>b(e,`土`,`兄弟`,`火`,`父母`,`木`,`官鬼`,`水`,`妻财`,`金`,`子孙`),离:e=>b(e,`木`,`父母`,`土`,`子孙`,`水`,`官鬼`,`金`,`妻财`,`火`,`兄弟`),震:e=>b(e,`木`,`兄弟`,`水`,`父母`,`金`,`官鬼`,`火`,`子孙`,`土`,`妻财`),巽:e=>b(e,`木`,`兄弟`,`水`,`父母`,`金`,`官鬼`,`火`,`子孙`,`土`,`妻财`)};function S(e){let t=x[e.primary?e.primary.palace:e.palace];return[...e.inner.inner.map(t),...e.outer.outer.map(t)]}const C=[`老阴`,`少阳`,`少阴`,`老阳`],w=`交单拆重`,T=`×’”○`,E=[1,1,2,2],D=[0,1,0,1];var O=class e{static getName(e){return C[e]}static fromSymbol(t){let n=T.indexOf(t);return n===-1?null:new e(n)}static fromSymbolName(t){let n=w.indexOf(t);return n===-1?null:new e(n)}static fromName(t){let n=C.indexOf(t);return n===-1?null:new e(n)}static fromDigitString(t){let n=`0123`.indexOf(t);return n===-1?null:new e(n)}static fromTrigramField(t){let n=m.find(e=>e.id===t||e.yangs===t||e.binary===t||e.sign===t);return n?new e(n.yangs):null}yangs;polar;dynamic;changed;pattern;name;symbol;constructor(e,t=!1){if(e!==0&&e!==1&&e!==2&&e!==3)throw Error(`Count of yang must be 0, 1, 2 or 3`);if(this.yangs=e,this.changed=t,this.polar=D[e],this.dynamic=e===0||e===3,this.pattern=T[e],this.name=C[e],this.symbol=w[e],this.dynamic&&this.changed)throw Error(`Changed Yao should not be dynamic.`)}eq(e){return this.yangs===e.yangs}eqeqeq(e){return this.yangs===e.yangs&&this.changed===e.changed}clone(){return new e(this.yangs,this.changed)}toChanged(){return new e(E[this.yangs],this.dynamic)}};const k=[`初爻`,`二爻`,`三爻`,`四爻`,`五爻`,`上爻`],A=[`乾`,`坤`,`震`,`巽`,`坎`,`离`,`艮`,`兑`,`无妄`,`大壮`],j=[`否`,`泰`,`复`,`豫`,`贲`,`旅`,`困`,`节`],M=[`乾`,`坤`,`震`,`巽`,`坎`,`离`,`艮`,`兑`];var N=class e{static fromQuaternary(t){let n=t.split(``).map(O.fromDigitString);return n.every(e=>e!==null)?new e(n):null}static fromSymbolName(t){let n=t.split(``).map(O.fromSymbolName);return n.every(e=>e!==null)?new e(n):null}static fromYangCounts(t){try{return new e(t.map(e=>new O(e)))}catch{return null}}static fromId(t){let n=p.find(e=>e.id===t||e.id.slice(2)===t||e.id.startsWith(t)&&t.length>1);return n?e.fromYangCounts(n.yangs):null}static fromPalace(t){let n=p.find(e=>e.id[2]===t);return n?e.fromYangCounts(n.yangs):null}yaos;yangs;binary;id;name;sign;palace;phase;generation;palaceInfo;dynamic;changed;inner;outer;specialType;pure;kins;host;guest;primary;constructor(e,t=null){if(e.length!==6)throw Error(`Array length mismatch, A Hexagram must be constructed with exactly 6 Yaos or 6 counts of yang`);if(e.some(e=>!(e instanceof O)))throw Error(`Invalid Arguments, Hexagram must be constructed with exactly 6 Yaos or 6 counts of yang`);this.yaos=e.map(e=>e.clone()),this.binary=this.yaos.map(e=>e.polar).join(``);let n=p.find(e=>e.binary===this.binary);this.palace=n.palace,this.id=n.id,this.generation=n.generation,this.yangs=this.yaos.map(e=>e.yangs),this.phase=n.phase,this.name=n.name,this.sign=n.sign,this.palaceInfo=`${n.palace}宫(${n.phase})${f[n.generation]}`,this.dynamic=this.yaos.some(e=>e.dynamic||e.changed),this.changed=!!t,this.primary=t;let r=this.binary.slice(0,3),i=this.binary.slice(3);this.inner=m.find(e=>e.binary===r),this.outer=m.find(e=>e.binary===i);let a=S(this),o=g(this);this.kins=[...this.inner.inner.map((e,t)=>a[t]+o[t]+e),...this.outer.outer.map((e,t)=>a[t+3]+o[t+3]+e)];let s=y(this);this.host=s.host,this.guest=s.guest,A.includes(n.name)&&(this.specialType=`六冲`),j.includes(n.name)&&(this.specialType=`六合`),this.pure=M.includes(n.name)}toChanged(){if(!this.dynamic)return null;if(this.changed)throw Error(`The gram is already changed, cannot change again.`);return new e(this.yaos.map(e=>e.toChanged()),this)}clone(){return new e(this.yaos,this.primary)}toString(){return this.id}[Symbol.toPrimitive](){return this.id}};const P=[{heavenlyStem:`甲`,gods:[`青龙`,`朱雀`,`勾陈`,`螣蛇`,`白虎`,`玄武`]},{heavenlyStem:`乙`,gods:[`青龙`,`朱雀`,`勾陈`,`螣蛇`,`白虎`,`玄武`]},{heavenlyStem:`丙`,gods:[`朱雀`,`勾陈`,`螣蛇`,`白虎`,`玄武`,`青龙`]},{heavenlyStem:`丁`,gods:[`朱雀`,`勾陈`,`螣蛇`,`白虎`,`玄武`,`青龙`]},{heavenlyStem:`戊`,gods:[`勾陈`,`螣蛇`,`白虎`,`玄武`,`青龙`,`朱雀`]},{heavenlyStem:`己`,gods:[`螣蛇`,`白虎`,`玄武`,`青龙`,`朱雀`,`勾陈`]},{heavenlyStem:`庚`,gods:[`白虎`,`玄武`,`青龙`,`朱雀`,`勾陈`,`螣蛇`]},{heavenlyStem:`辛`,gods:[`白虎`,`玄武`,`青龙`,`朱雀`,`勾陈`,`螣蛇`]},{heavenlyStem:`壬`,gods:[`玄武`,`青龙`,`朱雀`,`勾陈`,`螣蛇`,`白虎`]},{heavenlyStem:`癸`,gods:[`玄武`,`青龙`,`朱雀`,`勾陈`,`螣蛇`,`白虎`]}];Object.freeze(P);function F(e,t,n){let r={爻:e.yaos[t].name,装卦:e.kins[t]};return e.host===t?r.关系=`世`:e.guest===t&&(r.关系=`应`),n&&(r.六神=n[t]),r}function I(e,t){let n=e.toChanged();return{本卦:{上爻:F(e,5,t),五爻:F(e,4,t),四爻:F(e,3,t),三爻:F(e,2,t),二爻:F(e,1,t),初爻:F(e,0,t),卦名:e.name,宫:e.palace,变爻:e.dynamic?e.yaos.map((e,t)=>e.dynamic?k[t]:null).filter(e=>e!==null):void 0,六冲六合:e.specialType??`不是`},变卦:n?{上爻:F(n,5,t),五爻:F(n,4,t),四爻:F(n,3,t),三爻:F(n,2,t),二爻:F(n,1,t),初爻:F(n,0,t),卦名:n.name,宫:n.palace,六冲六合:n.specialType??`不是`}:`无`}}function L(){let e=process.argv[2];if(!e)return null;let t=e.split(``).map(O.fromTrigramField);return t.every(e=>e!==null)&&t.length>=6?new N(t):N.fromQuaternary(e)||N.fromId(e)||N.fromSymbolName(e)}function R(e){return`子丑丑寅寅卯卯辰辰巳巳午午未未申申酉酉戌戌亥亥子`[e.getHours()]??`未知`}function z(){let e=process.argv[3],t=new Date(e);if(Number.isNaN(t.getTime()))return null;let n=d.solar2lunar(t.getFullYear(),t.getMonth()+1,t.getDate());if(n===-1)return null;let r=P.find(e=>e.heavenlyStem===n.gzDay[0]).gods;return{时辰:{年:n.gzYear,月:n.gzMonth,日:n.gzDay,时:R(t)},gods:r}}function B(){let e=L();if(!e)return JSON.stringify({version:`0.5.0`,卦象:null},null,2);let t=z();return JSON.stringify({version:`0.5.0`,卦象:I(e,t?.gods),时辰:t?.时辰},null,2)}console.log(B());export{};
1
+ var e=[19416,19168,42352,21717,53856,55632,91476,22176,39632,21970,19168,42422,42192,53840,119381,46400,54944,44450,38320,84343,18800,42160,46261,27216,27968,109396,11104,38256,21234,18800,25958,54432,59984,28309,23248,11104,100067,37600,116951,51536,54432,120998,46416,22176,107956,9680,37584,53938,43344,46423,27808,46416,86869,19872,42416,83315,21168,43432,59728,27296,44710,43856,19296,43748,42352,21088,62051,55632,23383,22176,38608,19925,19152,42192,54484,53840,54616,46400,46752,103846,38320,18864,43380,42160,45690,27216,27968,44870,43872,38256,19189,18800,25776,29859,59984,27480,23232,43872,38613,37600,51552,55636,54432,55888,30034,22176,43959,9680,37584,51893,43344,46240,47780,44368,21977,19360,42416,86390,21168,43312,31060,27296,44368,23378,19296,42726,42208,53856,60005,54576,23200,30371,38608,19195,19152,42192,118966,53840,54560,56645,46496,22224,21938,18864,42359,42160,43600,111189,27936,44448,84835,37744,18936,18800,25776,92326,59984,27424,108228,43744,37600,53987,51552,54615,54432,55888,23893,22176,42704,21972,21200,43448,43344,46240,46758,44368,21920,43940,42416,21168,45683,26928,29495,27296,44368,84821,19296,42352,21732,53600,59752,54560,55968,92838,22224,19168,43476,42192,53584,62034,54560],t=[31,28,31,30,31,30,31,31,30,31,30,31],n=[`甲`,`乙`,`丙`,`丁`,`戊`,`己`,`庚`,`辛`,`壬`,`癸`],r=[`子`,`丑`,`寅`,`卯`,`辰`,`巳`,`午`,`未`,`申`,`酉`,`戌`,`亥`],i=[`鼠`,`牛`,`虎`,`兔`,`龙`,`蛇`,`马`,`羊`,`猴`,`鸡`,`狗`,`猪`],a=[`小寒`,`大寒`,`立春`,`雨水`,`惊蛰`,`春分`,`清明`,`谷雨`,`立夏`,`小满`,`芒种`,`夏至`,`小暑`,`大暑`,`立秋`,`处暑`,`白露`,`秋分`,`寒露`,`霜降`,`立冬`,`小雪`,`大雪`,`冬至`],o=`9778397bd097c36b0b6fc9274c91aa.97b6b97bd19801ec9210c965cc920e.97bcf97c3598082c95f8c965cc920f.97bd0b06bdb0722c965ce1cfcc920f.b027097bd097c36b0b6fc9274c91aa.97b6b97bd19801ec9210c965cc920e.97bcf97c359801ec95f8c965cc920f.97bd0b06bdb0722c965ce1cfcc920f.b027097bd097c36b0b6fc9274c91aa.97b6b97bd19801ec9210c965cc920e.97bcf97c359801ec95f8c965cc920f.97bd0b06bdb0722c965ce1cfcc920f.b027097bd097c36b0b6fc9274c91aa.9778397bd19801ec9210c965cc920e.97b6b97bd19801ec95f8c965cc920f.97bd09801d98082c95f8e1cfcc920f.97bd097bd097c36b0b6fc9210c8dc2.9778397bd197c36c9210c9274c91aa.97b6b97bd19801ec95f8c965cc920e.97bd09801d98082c95f8e1cfcc920f.97bd097bd097c36b0b6fc9210c8dc2.9778397bd097c36c9210c9274c91aa.97b6b97bd19801ec95f8c965cc920e.97bcf97c3598082c95f8e1cfcc920f.97bd097bd097c36b0b6fc9210c8dc2.9778397bd097c36c9210c9274c91aa.97b6b97bd19801ec9210c965cc920e.97bcf97c3598082c95f8c965cc920f.97bd097bd097c35b0b6fc920fb0722.9778397bd097c36b0b6fc9274c91aa.97b6b97bd19801ec9210c965cc920e.97bcf97c3598082c95f8c965cc920f.97bd097bd097c35b0b6fc920fb0722.9778397bd097c36b0b6fc9274c91aa.97b6b97bd19801ec9210c965cc920e.97bcf97c359801ec95f8c965cc920f.97bd097bd097c35b0b6fc920fb0722.9778397bd097c36b0b6fc9274c91aa.97b6b97bd19801ec9210c965cc920e.97bcf97c359801ec95f8c965cc920f.97bd097bd097c35b0b6fc920fb0722.9778397bd097c36b0b6fc9274c91aa.97b6b97bd19801ec9210c965cc920e.97bcf97c359801ec95f8c965cc920f.97bd097bd07f595b0b6fc920fb0722.9778397bd097c36b0b6fc9210c8dc2.9778397bd19801ec9210c9274c920e.97b6b97bd19801ec95f8c965cc920f.97bd07f5307f595b0b0bc920fb0722.7f0e397bd097c36b0b6fc9210c8dc2.9778397bd097c36c9210c9274c920e.97b6b97bd19801ec95f8c965cc920f.97bd07f5307f595b0b0bc920fb0722.7f0e397bd097c36b0b6fc9210c8dc2.9778397bd097c36c9210c9274c91aa.97b6b97bd19801ec9210c965cc920e.97bd07f1487f595b0b0bc920fb0722.7f0e397bd097c36b0b6fc9210c8dc2.9778397bd097c36b0b6fc9274c91aa.97b6b97bd19801ec9210c965cc920e.97bcf7f1487f595b0b0bb0b6fb0722.7f0e397bd097c35b0b6fc920fb0722.9778397bd097c36b0b6fc9274c91aa.97b6b97bd19801ec9210c965cc920e.97bcf7f1487f595b0b0bb0b6fb0722.7f0e397bd097c35b0b6fc920fb0722.9778397bd097c36b0b6fc9274c91aa.97b6b97bd19801ec9210c965cc920e.97bcf7f1487f531b0b0bb0b6fb0722.7f0e397bd097c35b0b6fc920fb0722.9778397bd097c36b0b6fc9274c91aa.97b6b97bd19801ec9210c965cc920e.97bcf7f1487f531b0b0bb0b6fb0722.7f0e397bd07f595b0b6fc920fb0722.9778397bd097c36b0b6fc9274c91aa.97b6b97bd19801ec9210c9274c920e.97bcf7f0e47f531b0b0bb0b6fb0722.7f0e397bd07f595b0b0bc920fb0722.9778397bd097c36b0b6fc9210c91aa.97b6b97bd197c36c9210c9274c920e.97bcf7f0e47f531b0b0bb0b6fb0722.7f0e397bd07f595b0b0bc920fb0722.9778397bd097c36b0b6fc9210c8dc2.9778397bd097c36c9210c9274c920e.97b6b7f0e47f531b0723b0b6fb0722.7f0e37f5307f595b0b0bc920fb0722.7f0e397bd097c36b0b6fc9210c8dc2.9778397bd097c36b0b70c9274c91aa.97b6b7f0e47f531b0723b0b6fb0721.7f0e37f1487f595b0b0bb0b6fb0722.7f0e397bd097c35b0b6fc9210c8dc2.9778397bd097c36b0b6fc9274c91aa.97b6b7f0e47f531b0723b0b6fb0721.7f0e27f1487f595b0b0bb0b6fb0722.7f0e397bd097c35b0b6fc920fb0722.9778397bd097c36b0b6fc9274c91aa.97b6b7f0e47f531b0723b0b6fb0721.7f0e27f1487f531b0b0bb0b6fb0722.7f0e397bd097c35b0b6fc920fb0722.9778397bd097c36b0b6fc9274c91aa.97b6b7f0e47f531b0723b0b6fb0721.7f0e27f1487f531b0b0bb0b6fb0722.7f0e397bd097c35b0b6fc920fb0722.9778397bd097c36b0b6fc9274c91aa.97b6b7f0e47f531b0723b0b6fb0721.7f0e27f1487f531b0b0bb0b6fb0722.7f0e397bd07f595b0b0bc920fb0722.9778397bd097c36b0b6fc9274c91aa.97b6b7f0e47f531b0723b0787b0721.7f0e27f0e47f531b0b0bb0b6fb0722.7f0e397bd07f595b0b0bc920fb0722.9778397bd097c36b0b6fc9210c91aa.97b6b7f0e47f149b0723b0787b0721.7f0e27f0e47f531b0723b0b6fb0722.7f0e397bd07f595b0b0bc920fb0722.9778397bd097c36b0b6fc9210c8dc2.977837f0e37f149b0723b0787b0721.7f07e7f0e47f531b0723b0b6fb0722.7f0e37f5307f595b0b0bc920fb0722.7f0e397bd097c35b0b6fc9210c8dc2.977837f0e37f14998082b0787b0721.7f07e7f0e47f531b0723b0b6fb0721.7f0e37f1487f595b0b0bb0b6fb0722.7f0e397bd097c35b0b6fc9210c8dc2.977837f0e37f14998082b0787b06bd.7f07e7f0e47f531b0723b0b6fb0721.7f0e27f1487f531b0b0bb0b6fb0722.7f0e397bd097c35b0b6fc920fb0722.977837f0e37f14998082b0787b06bd.7f07e7f0e47f531b0723b0b6fb0721.7f0e27f1487f531b0b0bb0b6fb0722.7f0e397bd097c35b0b6fc920fb0722.977837f0e37f14998082b0787b06bd.7f07e7f0e47f531b0723b0b6fb0721.7f0e27f1487f531b0b0bb0b6fb0722.7f0e397bd07f595b0b0bc920fb0722.977837f0e37f14998082b0787b06bd.7f07e7f0e47f531b0723b0b6fb0721.7f0e27f1487f531b0b0bb0b6fb0722.7f0e397bd07f595b0b0bc920fb0722.977837f0e37f14998082b0787b06bd.7f07e7f0e47f149b0723b0787b0721.7f0e27f0e47f531b0b0bb0b6fb0722.7f0e397bd07f595b0b0bc920fb0722.977837f0e37f14998082b0723b06bd.7f07e7f0e37f149b0723b0787b0721.7f0e27f0e47f531b0723b0b6fb0722.7f0e397bd07f595b0b0bc920fb0722.977837f0e37f14898082b0723b02d5.7ec967f0e37f14998082b0787b0721.7f07e7f0e47f531b0723b0b6fb0722.7f0e37f1487f595b0b0bb0b6fb0722.7f0e37f0e37f14898082b0723b02d5.7ec967f0e37f14998082b0787b0721.7f07e7f0e47f531b0723b0b6fb0722.7f0e37f1487f531b0b0bb0b6fb0722.7f0e37f0e37f14898082b0723b02d5.7ec967f0e37f14998082b0787b06bd.7f07e7f0e47f531b0723b0b6fb0721.7f0e37f1487f531b0b0bb0b6fb0722.7f0e37f0e37f14898082b072297c35.7ec967f0e37f14998082b0787b06bd.7f07e7f0e47f531b0723b0b6fb0721.7f0e27f1487f531b0b0bb0b6fb0722.7f0e37f0e37f14898082b072297c35.7ec967f0e37f14998082b0787b06bd.7f07e7f0e47f531b0723b0b6fb0721.7f0e27f1487f531b0b0bb0b6fb0722.7f0e37f0e366aa89801eb072297c35.7ec967f0e37f14998082b0787b06bd.7f07e7f0e47f149b0723b0787b0721.7f0e27f1487f531b0b0bb0b6fb0722.7f0e37f0e366aa89801eb072297c35.7ec967f0e37f14998082b0723b06bd.7f07e7f0e47f149b0723b0787b0721.7f0e27f0e47f531b0723b0b6fb0722.7f0e37f0e366aa89801eb072297c35.7ec967f0e37f14998082b0723b06bd.7f07e7f0e37f14998083b0787b0721.7f0e27f0e47f531b0723b0b6fb0722.7f0e37f0e366aa89801eb072297c35.7ec967f0e37f14898082b0723b02d5.7f07e7f0e37f14998082b0787b0721.7f07e7f0e47f531b0723b0b6fb0722.7f0e36665b66aa89801e9808297c35.665f67f0e37f14898082b0723b02d5.7ec967f0e37f14998082b0787b0721.7f07e7f0e47f531b0723b0b6fb0722.7f0e36665b66a449801e9808297c35.665f67f0e37f14898082b0723b02d5.7ec967f0e37f14998082b0787b06bd.7f07e7f0e47f531b0723b0b6fb0721.7f0e36665b66a449801e9808297c35.665f67f0e37f14898082b072297c35.7ec967f0e37f14998082b0787b06bd.7f07e7f0e47f531b0723b0b6fb0721.7f0e26665b66a449801e9808297c35.665f67f0e37f1489801eb072297c35.7ec967f0e37f14998082b0787b06bd.7f07e7f0e47f531b0723b0b6fb0721.7f0e27f1487f531b0b0bb0b6fb0722`.split(`.`),s=[`日`,`一`,`二`,`三`,`四`,`五`,`六`,`七`,`八`,`九`,`十`],c=[`初`,`十`,`廿`,`卅`],l=[`正`,`二`,`三`,`四`,`五`,`六`,`七`,`八`,`九`,`十`,`冬`,`腊`],u=[`零`,`一`,`二`,`三`,`四`,`五`,`六`,`七`,`八`,`九`,`十`];const d={lunarInfo:e,solarMonth:t,gan:n,zhi:r,animals:i,lunarTerm:a,lTermInfo:o,nStr1:s,nStr2:c,nStr3:l,nStr4:u,lYearDays(t){let n=348,r=e[t-1900];return n+=r&32768?1:0,n+=r&16384?1:0,n+=r&8192?1:0,n+=r&4096?1:0,n+=r&2048?1:0,n+=r&1024?1:0,n+=r&512?1:0,n+=r&256?1:0,n+=r&128?1:0,n+=r&64?1:0,n+=r&32?1:0,n+=r&16?1:0,n+d.leapDays(t)},leapMonth(t){return e[t-1900]&15},leapDays(t){return d.leapMonth(t)?e[t-1900]&65536?30:29:0},monthDays(t,n){return n>12||n<1?-1:e[t-1900]&65536>>n?30:29},getShiChen(e,t){let i=(e+1)/2>=24?0:Math.floor((e+1)/2)%12;return n[(t*2+i)%10]+r[i]},solarDays(e,n){if(n>12||n<1)return-1;let r=n-1;return r===1?e%4==0&&e%100!=0||e%400==0?29:28:t[r]},toGanZhi(e){return n[e%10]+r[e%12]},getTerm(e,t){if(e<1900||e>2100||t<1||t>24)return-1;let n=o[e-1900],r=[parseInt(`0x`+n.substr(0,5)).toString(),parseInt(`0x`+n.substr(5,5)).toString(),parseInt(`0x`+n.substr(10,5)).toString(),parseInt(`0x`+n.substr(15,5)).toString(),parseInt(`0x`+n.substr(20,5)).toString(),parseInt(`0x`+n.substr(25,5)).toString()],i=[r[0].substr(0,1),r[0].substr(1,2),r[0].substr(3,1),r[0].substr(4,2),r[1].substr(0,1),r[1].substr(1,2),r[1].substr(3,1),r[1].substr(4,2),r[2].substr(0,1),r[2].substr(1,2),r[2].substr(3,1),r[2].substr(4,2),r[3].substr(0,1),r[3].substr(1,2),r[3].substr(3,1),r[3].substr(4,2),r[4].substr(0,1),r[4].substr(1,2),r[4].substr(3,1),r[4].substr(4,2),r[5].substr(0,1),r[5].substr(1,2),r[5].substr(3,1),r[5].substr(4,2)];return parseInt(i[t-1])},toChinaYear(e){let t=Math.floor(e/1e3),n=Math.floor(e%1e3/100),r=Math.floor(e%100/10),i=e%10;return u[t]+u[n]+u[r]+u[i]+`年`},toChinaMonth(e){if(e>12||e<1)return-1;let t=l[e-1];return t+=`月`,t},toChinaDay(e){let t=``;switch(e){case 10:t=`初十`;break;case 20:t=`二十`;break;case 30:t=`三十`;break;default:t=c[Math.floor(e/10)],t+=s[e%10]}return t},getAnimal(e,t,n){if(t!==void 0&&n!==void 0){let r=d.getTerm(e,3);(t<2||t===2&&n<r)&&--e}return i[(e-4)%12]},solar2lunar(e,t,n){if(e==null||t==null||n==null){let r=new Date;e=r.getFullYear(),t=r.getMonth()+1,n=r.getDate()}if(e=Number(e),t=Number(t),n=Number(n),isNaN(e)||isNaN(t)||isNaN(n)||e<1900||e>2100||e===1900&&t===1&&n<31||t<1||t>12)return-1;let r=d.solarDays(e,t);if(n<1||n>r)return-1;let i=new Date(e,parseInt(t)-1,n),o,c=0;e=i.getFullYear(),t=i.getMonth()+1,n=i.getDate();let l=(Date.UTC(i.getFullYear(),i.getMonth(),i.getDate())-Date.UTC(1900,0,31))/864e5;for(c=0,o=1900;o<2101&&l>0;o++)c=d.lYearDays(o),l-=c;l<0&&(l+=c,o--);let u=o,f=new Date,p=!1;f.getFullYear()===e&&f.getMonth()+1===t&&f.getDate()===n&&(p=!0);let m=i.getDay(),h=s[m],g=m===0?7:m,_=u,v=d.leapMonth(u),y=!1;for(o=1;o<13&&l>0;o++)v>0&&o===v+1&&y===!1?(--o,y=!0,c=d.leapDays(_)):c=d.monthDays(_,o),y===!0&&o===v+1&&(y=!1),l-=c;l===0&&v>0&&o===v+1&&(y?y=!1:(y=!0,--o)),l<0&&(l+=c,--o);let b=o,x=l+1,S=t-1,C=d.getTerm(e,3),w=d.toGanZhi(e-4);(t<2||t===2&&n<C)&&(w=d.toGanZhi(e-1-4));let T=d.getTerm(e,t*2-1),E=d.getTerm(e,t*2),D=d.toGanZhi((e-1900)*12+t+11);n>=T&&(D=d.toGanZhi((e-1900)*12+t+12));let O=!1,k=``;T===n&&(O=!0,k=a[t*2-2]),E===n&&(O=!0,k=a[t*2-1]);let A=Date.UTC(e,S,1,0,0,0,0)/864e5+25567+10,j=d.toGanZhi(A+n-1);return{lYear:_,lMonth:b,lDay:x,animal:d.getAnimal(_),yearCn:d.toChinaYear(_),monthCn:(y&&v===b?`闰`:``)+d.toChinaMonth(b),dayCn:d.toChinaDay(x),cYear:e,cMonth:t,cDay:n,gzYear:w,gzMonth:D,gzDay:j,isToday:p,isLeap:y,nWeek:g,ncWeek:`星期`+h,isTerm:O,term:k}},lunar2solar(e,t,n,r){if(e=Number(e),t=Number(t),n=Number(n),r=!!r,isNaN(e)||isNaN(t)||isNaN(n))return-1;let i=d.leapMonth(e);if(r&&i!==t||e===2100&&t===12&&n>1||e===1900&&t===1&&n<31)return-1;let a=d.monthDays(e,t);if(e<1900||e>2100||n>a)return-1;let o=0;for(let t=1900;t<e;t++)o+=d.lYearDays(t);let s=0,c=!1;for(let n=1;n<t;n++)s=d.leapMonth(e),c||s<=n&&s>0&&(o+=d.leapDays(e),c=!0),o+=d.monthDays(e,n);r&&(o+=a);let l=Date.UTC(1900,1,30,0,0,0),u=new Date((o+n-31)*864e5+l),f=u.getUTCFullYear(),p=u.getUTCMonth()+1,m=u.getUTCDate();return d.solar2lunar(f,p,m)},getFestivals(e,t,n){let r=[],i=d.solar2lunar(e,t,n);if(i===-1)return r;let{lMonth:a,lDay:o}=i,s={"1-1":`春节`,"1-15":`元宵节`,"5-5":`端午节`,"7-7":`七夕节`,"8-15":`中秋节`,"9-9":`重阳节`,"12-8":`腊八节`,"12-23":`小年`},c=`${a}-${o}`;return s[c]&&r.push(s[c]),a===1&&o===1&&r.push(`农历新年`),d.customFestivals&&d.customFestivals.forEach(e=>{e.month===a&&e.day===o&&r.push(e.name)}),r},addFestival(e,t,n){d.customFestivals||=[],d.customFestivals.push({name:e,month:t,day:n})},clearFestivals(){d.customFestivals=[]}},f=[`本宫卦`,`一世卦`,`二世卦`,`三世卦`,`四世卦`,`五世卦`,`游魂卦`,`归魂卦`],p=[{binary:`000000`,id:`坤为地`,sign:`䷁`,phase:`土`,palace:`坤`,generation:0,yangs:[2,2,2,2,2,2],name:`地`},{binary:`100000`,id:`地雷复`,sign:`䷗`,phase:`土`,palace:`坤`,generation:1,yangs:[1,2,2,2,2,2],name:`复`},{binary:`010000`,id:`地水师`,sign:`䷆`,phase:`水`,palace:`坎`,generation:7,yangs:[2,1,2,2,2,2],name:`师`},{binary:`110000`,id:`地泽临`,sign:`䷒`,phase:`土`,palace:`坤`,generation:2,yangs:[1,1,2,2,2,2],name:`临`},{binary:`001000`,id:`地山谦`,sign:`䷎`,phase:`土`,palace:`兑`,generation:5,yangs:[2,2,1,2,2,2],name:`谦`},{binary:`101000`,id:`地火明夷`,sign:`䷣`,phase:`水`,palace:`坎`,generation:6,yangs:[1,2,1,2,2,2],name:`明夷`},{binary:`011000`,id:`地风升`,sign:`䷭`,phase:`木`,palace:`震`,generation:4,yangs:[2,1,1,2,2,2],name:`升`},{binary:`111000`,id:`地天泰`,sign:`䷊`,phase:`土`,palace:`坤`,generation:3,yangs:[1,1,1,2,2,2],name:`泰`},{binary:`000100`,id:`雷地豫`,sign:`䷏`,phase:`木`,palace:`震`,generation:1,yangs:[2,2,2,1,2,2],name:`豫`},{binary:`100100`,id:`震为雷`,sign:`䷲`,phase:`木`,palace:`震`,generation:0,yangs:[1,2,2,1,2,2],name:`雷`},{binary:`010100`,id:`雷水解`,sign:`䷧`,phase:`木`,palace:`震`,generation:2,yangs:[2,1,2,1,2,2],name:`解`},{binary:`110100`,id:`雷泽归妹`,sign:`䷵`,phase:`金`,palace:`兑`,generation:7,yangs:[1,1,2,1,2,2],name:`归妹`},{binary:`001100`,id:`雷山小过`,sign:`䷽`,phase:`金`,palace:`兑`,generation:6,yangs:[2,2,1,1,2,2],name:`小过`},{binary:`101100`,id:`雷火丰`,sign:`䷶`,phase:`水`,palace:`坎`,generation:5,yangs:[1,2,1,1,2,2],name:`丰`},{binary:`011100`,id:`雷风恒`,sign:`䷟`,phase:`木`,palace:`震`,generation:3,yangs:[2,1,1,1,2,2],name:`恒`},{binary:`111100`,id:`雷天大壮`,sign:`䷡`,phase:`土`,palace:`坤`,generation:4,yangs:[1,1,1,1,2,2],name:`大壮`},{binary:`000010`,id:`水地比`,sign:`䷇`,phase:`土`,palace:`坤`,generation:7,yangs:[2,2,2,2,1,2],name:`比`},{binary:`100010`,id:`水雷屯`,sign:`䷂`,phase:`水`,palace:`坎`,generation:2,yangs:[1,2,2,2,1,2],name:`屯`},{binary:`010010`,id:`坎为水`,sign:`䷜`,phase:`水`,palace:`坎`,generation:0,yangs:[2,1,2,2,1,2],name:`水`},{binary:`110010`,id:`水泽节`,sign:`䷻`,phase:`水`,palace:`坎`,generation:1,yangs:[1,1,2,2,1,2],name:`节`},{binary:`001010`,id:`水山蹇`,sign:`䷦`,phase:`金`,palace:`兑`,generation:4,yangs:[2,2,1,2,1,2],name:`蹇`},{binary:`101010`,id:`水火既济`,sign:`䷾`,phase:`水`,palace:`坎`,generation:3,yangs:[1,2,1,2,1,2],name:`既济`},{binary:`011010`,id:`水风井`,sign:`䷯`,phase:`木`,palace:`震`,generation:5,yangs:[2,1,1,2,1,2],name:`井`},{binary:`111010`,id:`水天需`,sign:`䷄`,phase:`土`,palace:`坤`,generation:6,yangs:[1,1,1,2,1,2],name:`需`},{binary:`000110`,id:`泽地萃`,sign:`䷬`,phase:`金`,palace:`兑`,generation:2,yangs:[2,2,2,1,1,2],name:`萃`},{binary:`100110`,id:`泽雷随`,sign:`䷐`,phase:`木`,palace:`震`,generation:7,yangs:[1,2,2,1,1,2],name:`随`},{binary:`010110`,id:`泽水困`,sign:`䷮`,phase:`金`,palace:`兑`,generation:1,yangs:[2,1,2,1,1,2],name:`困`},{binary:`110110`,id:`兑为泽`,sign:`䷹`,phase:`金`,palace:`兑`,generation:0,yangs:[1,1,2,1,1,2],name:`泽`},{binary:`001110`,id:`泽山咸`,sign:`䷞`,phase:`金`,palace:`兑`,generation:3,yangs:[2,2,1,1,1,2],name:`咸`},{binary:`101110`,id:`泽火革`,sign:`䷰`,phase:`水`,palace:`坎`,generation:4,yangs:[1,2,1,1,1,2],name:`革`},{binary:`011110`,id:`泽风大过`,sign:`䷛`,phase:`木`,palace:`震`,generation:6,yangs:[2,1,1,1,1,2],name:`大过`},{binary:`111110`,id:`泽天夬`,sign:`䷪`,phase:`土`,palace:`坤`,generation:5,yangs:[1,1,1,1,1,2],name:`夬`},{binary:`000001`,id:`山地剥`,sign:`䷖`,phase:`金`,palace:`乾`,generation:5,yangs:[2,2,2,2,2,1],name:`剥`},{binary:`100001`,id:`山雷颐`,sign:`䷚`,phase:`木`,palace:`巽`,generation:6,yangs:[1,2,2,2,2,1],name:`颐`},{binary:`010001`,id:`山水蒙`,sign:`䷃`,phase:`火`,palace:`离`,generation:4,yangs:[2,1,2,2,2,1],name:`蒙`},{binary:`110001`,id:`山泽损`,sign:`䷨`,phase:`土`,palace:`艮`,generation:3,yangs:[1,1,2,2,2,1],name:`损`},{binary:`001001`,id:`艮为山`,sign:`䷳`,phase:`土`,palace:`艮`,generation:0,yangs:[2,2,1,2,2,1],name:`山`},{binary:`101001`,id:`山火贲`,sign:`䷕`,phase:`土`,palace:`艮`,generation:1,yangs:[1,2,1,2,2,1],name:`贲`},{binary:`011001`,id:`山风蛊`,sign:`䷑`,phase:`木`,palace:`巽`,generation:7,yangs:[2,1,1,2,2,1],name:`蛊`},{binary:`111001`,id:`山天大畜`,sign:`䷙`,phase:`土`,palace:`艮`,generation:2,yangs:[1,1,1,2,2,1],name:`大畜`},{binary:`000101`,id:`火地晋`,sign:`䷢`,phase:`金`,palace:`乾`,generation:6,yangs:[2,2,2,1,2,1],name:`晋`},{binary:`100101`,id:`火雷噬嗑`,sign:`䷔`,phase:`木`,palace:`巽`,generation:5,yangs:[1,2,2,1,2,1],name:`噬嗑`},{binary:`010101`,id:`火水未济`,sign:`䷿`,phase:`火`,palace:`离`,generation:3,yangs:[2,1,2,1,2,1],name:`未济`},{binary:`110101`,id:`火泽睽`,sign:`䷥`,phase:`土`,palace:`艮`,generation:4,yangs:[1,1,2,1,2,1],name:`睽`},{binary:`001101`,id:`火山旅`,sign:`䷷`,phase:`火`,palace:`离`,generation:1,yangs:[2,2,1,1,2,1],name:`旅`},{binary:`101101`,id:`离为火`,sign:`䷝`,phase:`火`,palace:`离`,generation:0,yangs:[1,2,1,1,2,1],name:`火`},{binary:`011101`,id:`火风鼎`,sign:`䷱`,phase:`火`,palace:`离`,generation:2,yangs:[2,1,1,1,2,1],name:`鼎`},{binary:`111101`,id:`火天大有`,sign:`䷍`,phase:`金`,palace:`乾`,generation:7,yangs:[1,1,1,1,2,1],name:`大有`},{binary:`000011`,id:`风地观`,sign:`䷓`,phase:`金`,palace:`乾`,generation:4,yangs:[2,2,2,2,1,1],name:`观`},{binary:`100011`,id:`风雷益`,sign:`䷩`,phase:`木`,palace:`巽`,generation:3,yangs:[1,2,2,2,1,1],name:`益`},{binary:`010011`,id:`风水涣`,sign:`䷺`,phase:`火`,palace:`离`,generation:5,yangs:[2,1,2,2,1,1],name:`涣`},{binary:`110011`,id:`风泽中孚`,sign:`䷼`,phase:`土`,palace:`艮`,generation:6,yangs:[1,1,2,2,1,1],name:`中孚`},{binary:`001011`,id:`风山渐`,sign:`䷴`,phase:`土`,palace:`艮`,generation:7,yangs:[2,2,1,2,1,1],name:`渐`},{binary:`101011`,id:`风火家人`,sign:`䷤`,phase:`木`,palace:`巽`,generation:2,yangs:[1,2,1,2,1,1],name:`家人`},{binary:`011011`,id:`巽为风`,sign:`䷸`,phase:`木`,palace:`巽`,generation:0,yangs:[2,1,1,2,1,1],name:`风`},{binary:`111011`,id:`风天小畜`,sign:`䷈`,phase:`木`,palace:`巽`,generation:1,yangs:[1,1,1,2,1,1],name:`小畜`},{binary:`000111`,id:`天地否`,sign:`䷋`,phase:`金`,palace:`乾`,generation:3,yangs:[2,2,2,1,1,1],name:`否`},{binary:`100111`,id:`天雷无妄`,sign:`䷘`,phase:`木`,palace:`巽`,generation:4,yangs:[1,2,2,1,1,1],name:`无妄`},{binary:`010111`,id:`天水讼`,sign:`䷅`,phase:`火`,palace:`离`,generation:6,yangs:[2,1,2,1,1,1],name:`讼`},{binary:`110111`,id:`天泽履`,sign:`䷉`,phase:`土`,palace:`艮`,generation:5,yangs:[1,1,2,1,1,1],name:`履`},{binary:`001111`,id:`天山遁`,sign:`䷠`,phase:`金`,palace:`乾`,generation:2,yangs:[2,2,1,1,1,1],name:`遁`},{binary:`101111`,id:`天火同人`,sign:`䷌`,phase:`火`,palace:`离`,generation:7,yangs:[1,2,1,1,1,1],name:`同人`},{binary:`011111`,id:`天风姤`,sign:`䷫`,phase:`金`,palace:`乾`,generation:1,yangs:[2,1,1,1,1,1],name:`姤`},{binary:`111111`,id:`乾为天`,sign:`䷀`,phase:`金`,palace:`乾`,generation:0,yangs:[1,1,1,1,1,1],name:`天`}],m=[{id:`坤`,binary:`000`,yangs:0,image:`地`,sign:`☷`,inner:[`未土`,`巳火`,`卯木`],outer:[`丑土`,`亥水`,`酉金`]},{id:`震`,binary:`100`,yangs:1,image:`雷`,sign:`☳`,inner:[`子水`,`寅木`,`辰土`],outer:[`午火`,`申金`,`戌土`]},{id:`坎`,binary:`010`,yangs:1,image:`水`,sign:`☵`,inner:[`寅木`,`辰土`,`午火`],outer:[`申金`,`戌土`,`子水`]},{id:`兑`,binary:`110`,yangs:2,image:`泽`,sign:`☱`,inner:[`巳火`,`卯木`,`丑土`],outer:[`亥水`,`酉金`,`未土`]},{id:`艮`,binary:`001`,yangs:1,image:`山`,sign:`☶`,inner:[`辰土`,`午火`,`申金`],outer:[`戌土`,`子水`,`寅木`]},{id:`离`,binary:`101`,yangs:2,image:`火`,sign:`☲`,inner:[`卯木`,`丑土`,`亥水`],outer:[`酉金`,`未土`,`巳火`]},{id:`巽`,binary:`011`,yangs:2,image:`风`,sign:`☴`,inner:[`丑土`,`亥水`,`酉金`],outer:[`未土`,`巳火`,`卯木`]},{id:`乾`,binary:`111`,yangs:3,image:`天`,sign:`☰`,inner:[`子水`,`寅木`,`辰土`],outer:[`午火`,`申金`,`戌土`]}];Object.freeze(f),Object.freeze(p),Object.freeze(m);const h={乾:{inner:`甲`,outer:`壬`},坤:{inner:`乙`,outer:`癸`},兑:{inner:`丁`,outer:`丁`},坎:{inner:`戊`,outer:`戊`},艮:{inner:`丙`,outer:`丙`},离:{inner:`己`,outer:`己`},震:{inner:`庚`,outer:`庚`},巽:{inner:`辛`,outer:`辛`}};function g(e){let t=h[e.inner.id].inner,n=h[e.outer.id].outer;return[t,t,t,n,n,n]}const _=[5,0,1,2,3,4,3,2],v=[2,3,4,5,0,1,0,5];function y(e){return{host:_[e.generation],guest:v[e.generation]}}function b(e,t,n,r,i,a,o,s,c,l,u){if(e.includes(t))return n;if(e.includes(r))return i;if(e.includes(a))return o;if(e.includes(s))return c;if(e.includes(l))return u;throw Error(`No BranchPhase[${e}] matches phase[${t},${r},${a},${s},${l}]`)}const x={乾:e=>b(e,`金`,`兄弟`,`土`,`父母`,`木`,`妻财`,`火`,`官鬼`,`水`,`子孙`),兑:e=>b(e,`金`,`兄弟`,`土`,`父母`,`木`,`妻财`,`火`,`官鬼`,`水`,`子孙`),坎:e=>b(e,`木`,`子孙`,`水`,`兄弟`,`金`,`父母`,`火`,`妻财`,`土`,`官鬼`),坤:e=>b(e,`土`,`兄弟`,`火`,`父母`,`木`,`官鬼`,`水`,`妻财`,`金`,`子孙`),艮:e=>b(e,`土`,`兄弟`,`火`,`父母`,`木`,`官鬼`,`水`,`妻财`,`金`,`子孙`),离:e=>b(e,`木`,`父母`,`土`,`子孙`,`水`,`官鬼`,`金`,`妻财`,`火`,`兄弟`),震:e=>b(e,`木`,`兄弟`,`水`,`父母`,`金`,`官鬼`,`火`,`子孙`,`土`,`妻财`),巽:e=>b(e,`木`,`兄弟`,`水`,`父母`,`金`,`官鬼`,`火`,`子孙`,`土`,`妻财`)};function S(e){let t=x[e.primary?e.primary.palace:e.palace];return[...e.inner.inner.map(t),...e.outer.outer.map(t)]}const C=[`老阴`,`少阳`,`少阴`,`老阳`],w=`交单拆重`,T=`×’”○`,E=[1,1,2,2],D=[0,1,0,1];var O=class e{static getName(e){return C[e]}static fromSymbol(t){let n=T.indexOf(t);return n===-1?null:new e(n)}static fromSymbolName(t){let n=w.indexOf(t);return n===-1?null:new e(n)}static fromName(t){let n=C.indexOf(t);return n===-1?null:new e(n)}static fromDigitString(t){let n=`0123`.indexOf(t);return n===-1?null:new e(n)}static fromTrigramField(t){let n=m.find(e=>e.id===t||e.yangs===t||e.binary===t||e.sign===t);return n?new e(n.yangs):null}yangs;polar;dynamic;changed;pattern;name;symbol;constructor(e,t=!1){if(e!==0&&e!==1&&e!==2&&e!==3)throw Error(`Count of yang must be 0, 1, 2 or 3`);if(this.yangs=e,this.changed=t,this.polar=D[e],this.dynamic=e===0||e===3,this.pattern=T[e],this.name=C[e],this.symbol=w[e],this.dynamic&&this.changed)throw Error(`Changed Yao should not be dynamic.`)}eq(e){return this.yangs===e.yangs}eqeqeq(e){return this.yangs===e.yangs&&this.changed===e.changed}clone(){return new e(this.yangs,this.changed)}toChanged(){return new e(E[this.yangs],this.dynamic)}};const k=[`初爻`,`二爻`,`三爻`,`四爻`,`五爻`,`上爻`],A=[`乾`,`坤`,`震`,`巽`,`坎`,`离`,`艮`,`兑`,`无妄`,`大壮`],j=[`否`,`泰`,`复`,`豫`,`贲`,`旅`,`困`,`节`],M=[`乾`,`坤`,`震`,`巽`,`坎`,`离`,`艮`,`兑`];var N=class e{static fromQuaternary(t){let n=t.split(``).map(O.fromDigitString);return n.every(e=>e!==null)?new e(n):null}static fromSymbolName(t){let n=t.split(``).map(O.fromSymbolName);return n.every(e=>e!==null)?new e(n):null}static fromYangCounts(t){try{return new e(t.map(e=>new O(e)))}catch{return null}}static fromId(t){let n=p.find(e=>e.id===t||e.id.slice(2)===t||e.id.startsWith(t)&&t.length>1);return n?e.fromYangCounts(n.yangs):null}static fromPalace(t){let n=p.find(e=>e.id[2]===t);return n?e.fromYangCounts(n.yangs):null}yaos;yangs;binary;id;name;sign;palace;phase;generation;palaceInfo;dynamic;changed;inner;outer;specialType;pure;kins;host;guest;primary;constructor(e,t=null){if(e.length!==6)throw Error(`Array length mismatch, A Hexagram must be constructed with exactly 6 Yaos or 6 counts of yang`);if(e.some(e=>!(e instanceof O)))throw Error(`Invalid Arguments, Hexagram must be constructed with exactly 6 Yaos or 6 counts of yang`);this.yaos=e.map(e=>e.clone()),this.binary=this.yaos.map(e=>e.polar).join(``);let n=p.find(e=>e.binary===this.binary);this.palace=n.palace,this.id=n.id,this.generation=n.generation,this.yangs=this.yaos.map(e=>e.yangs),this.phase=n.phase,this.name=n.name,this.sign=n.sign,this.palaceInfo=`${n.palace}宫(${n.phase})${f[n.generation]}`,this.dynamic=this.yaos.some(e=>e.dynamic||e.changed),this.changed=!!t,this.primary=t;let r=this.binary.slice(0,3),i=this.binary.slice(3);this.inner=m.find(e=>e.binary===r),this.outer=m.find(e=>e.binary===i);let a=S(this),o=g(this);this.kins=[...this.inner.inner.map((e,t)=>a[t]+o[t]+e),...this.outer.outer.map((e,t)=>a[t+3]+o[t+3]+e)];let s=y(this);this.host=s.host,this.guest=s.guest,A.includes(n.name)&&(this.specialType=`六冲`),j.includes(n.name)&&(this.specialType=`六合`),this.pure=M.includes(n.name)}toChanged(){if(!this.dynamic)return null;if(this.changed)throw Error(`The gram is already changed, cannot change again.`);return new e(this.yaos.map(e=>e.toChanged()),this)}clone(){return new e(this.yaos,this.primary)}toString(){return this.id}[Symbol.toPrimitive](){return this.id}};const P=[{heavenlyStem:`甲`,gods:[`青龙`,`朱雀`,`勾陈`,`螣蛇`,`白虎`,`玄武`]},{heavenlyStem:`乙`,gods:[`青龙`,`朱雀`,`勾陈`,`螣蛇`,`白虎`,`玄武`]},{heavenlyStem:`丙`,gods:[`朱雀`,`勾陈`,`螣蛇`,`白虎`,`玄武`,`青龙`]},{heavenlyStem:`丁`,gods:[`朱雀`,`勾陈`,`螣蛇`,`白虎`,`玄武`,`青龙`]},{heavenlyStem:`戊`,gods:[`勾陈`,`螣蛇`,`白虎`,`玄武`,`青龙`,`朱雀`]},{heavenlyStem:`己`,gods:[`螣蛇`,`白虎`,`玄武`,`青龙`,`朱雀`,`勾陈`]},{heavenlyStem:`庚`,gods:[`白虎`,`玄武`,`青龙`,`朱雀`,`勾陈`,`螣蛇`]},{heavenlyStem:`辛`,gods:[`白虎`,`玄武`,`青龙`,`朱雀`,`勾陈`,`螣蛇`]},{heavenlyStem:`壬`,gods:[`玄武`,`青龙`,`朱雀`,`勾陈`,`螣蛇`,`白虎`]},{heavenlyStem:`癸`,gods:[`玄武`,`青龙`,`朱雀`,`勾陈`,`螣蛇`,`白虎`]}];Object.freeze(P);function F(e,t,n){let r={爻:e.yaos[t].name,装卦:e.kins[t]};return e.host===t?r.关系=`世`:e.guest===t&&(r.关系=`应`),n&&(r.六神=n[t]),r}function I(e,t){let n=e.toChanged();return{本卦:{上爻:F(e,5,t),五爻:F(e,4,t),四爻:F(e,3,t),三爻:F(e,2,t),二爻:F(e,1,t),初爻:F(e,0,t),卦名:e.name,宫:e.palaceInfo,变爻:e.dynamic?e.yaos.map((e,t)=>e.dynamic?k[t]:null).filter(e=>e!==null):void 0,六冲六合:e.specialType??`不是`},变卦:n?{上爻:F(n,5,t),五爻:F(n,4,t),四爻:F(n,3,t),三爻:F(n,2,t),二爻:F(n,1,t),初爻:F(n,0,t),卦名:n.name,宫:n.palaceInfo,六冲六合:n.specialType??`不是`}:`无`}}function L(){let e=process.argv[2];if(!e)return null;let t=e.split(``).map(O.fromTrigramField);return t.every(e=>e!==null)&&t.length>=6?new N(t):N.fromQuaternary(e)||N.fromId(e)||N.fromSymbolName(e)}function R(e){return`子丑丑寅寅卯卯辰辰巳巳午午未未申申酉酉戌戌亥亥子`[e.getHours()]??`未知`}function z(){let e=process.argv[3],t=new Date(e);if(Number.isNaN(t.getTime()))return null;let n=d.solar2lunar(t.getFullYear(),t.getMonth()+1,t.getDate());if(n===-1)return null;let r=P.find(e=>e.heavenlyStem===n.gzDay[0]).gods;return{时辰:{年:n.gzYear,月:n.gzMonth,日:n.gzDay,时:R(t)},gods:r}}function B(){let e=L();if(!e)return JSON.stringify({version:`0.5.1`,卦象:null},null,2);let t=z();return JSON.stringify({version:`0.5.1`,卦象:I(e,t?.gods),时辰:t?.时辰},null,2)}console.log(B());export{};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "liuyao",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "author": {
5
5
  "name": "Kasukabe Tsumugi",
6
6
  "email": "futami16237@gmail.com"
@@ -42,4 +42,4 @@
42
42
  "dependencies": {
43
43
  "solarlunar": "^3.1.0"
44
44
  }
45
- }
45
+ }