UNPKG

ipink-util

Version:

util.js

2 lines (1 loc) 14.9 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("./date.js");let f=["正","二","三","四","五","六","七","八","九","十","冬","腊"],e=["一","二","三","四","五","六","七","八","九","十","初","廿"],c=["子鼠","丑牛","寅虎","卯兔","辰龙","巳蛇","午马","未羊","申猴","酉鸡","戌狗","亥猪"];function hasLeapMonth(b){return!!(15&b)&&15&b}function leapMonthDays(b){return hasLeapMonth(b)?983040&b?30:29:0}function lunarYearDays(b){let f=0;for(let e=32768;e>8;e>>=1){f+=b&e?30:29}return hasLeapMonth(b)&&(f+=leapMonthDays(b)),f}function lunarYearMonths(b){let f=[];for(let c=32768;c>8;c>>=1)f.push(b&c?30:29);const e=hasLeapMonth(b);return e&&f.splice(e,0,leapMonthDays(b)),f}function getTianGan(b){let f=(b-3)%10;return 0===f&&(f=10),a.t[f-1]}function getDiZhi(b){let f=(b-3)%12;return 0===f&&(f=12),c[f-1]}class Calendar{constructor(){}o=[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,21952,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,41696,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,41680,53584,62034,54560];l=[31,28,31,30,31,30,31,31,30,31,30,31];t=["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"];u=["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"];i=["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"];h=["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"];D=["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"];p=["日","一","二","三","四","五","六","七","八","九","十"];M=["初","十","廿","卅"];$=["正","二","三","四","五","六","七","八","九","十","冬","腊"];v(b){var f,e=348;for(f=32768;f>8;f>>=1)e+=a.o[b-1900]&f?1:0;return e+a.Y(b)}m(b){return 15&a.o[b-1900]}Y(b){return a.m(b)?65536&a.o[b-1900]?30:29:0}k(b,f){return f>12||f<1?-1:a.o[b-1900]&65536>>f?30:29}I(b,f){if(f>12||f<1)return-1;var e=f-1;return 1==e?b%4==0&&b%100!=0||b%400==0?29:28:a.l[e]}L(b){var f=(b-3)%10,e=(b-3)%12;return 0==f&&(f=10),0==e&&(e=12),a.t[f-1]+a.u[e-1]}C(b,f){return"魔羯水瓶双鱼白羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯".substr(2*b-(f<[20,19,21,21,21,22,23,23,23,23,22,22][b-1]?2:0),2)+"座"}T(b){return a.t[b%10]+a.u[b%12]}G(b,f){if(b<1900||b>2100)return-1;if(f<1||f>24)return-1;var e=a.D[b-1900],c=[parseInt("0x"+e.substr(0,5)).toString(),parseInt("0x"+e.substr(5,5)).toString(),parseInt("0x"+e.substr(10,5)).toString(),parseInt("0x"+e.substr(15,5)).toString(),parseInt("0x"+e.substr(20,5)).toString(),parseInt("0x"+e.substr(25,5)).toString()],r=[c[0].substr(0,1),c[0].substr(1,2),c[0].substr(3,1),c[0].substr(4,2),c[1].substr(0,1),c[1].substr(1,2),c[1].substr(3,1),c[1].substr(4,2),c[2].substr(0,1),c[2].substr(1,2),c[2].substr(3,1),c[2].substr(4,2),c[3].substr(0,1),c[3].substr(1,2),c[3].substr(3,1),c[3].substr(4,2),c[4].substr(0,1),c[4].substr(1,2),c[4].substr(3,1),c[4].substr(4,2),c[5].substr(0,1),c[5].substr(1,2),c[5].substr(3,1),c[5].substr(4,2)];return parseInt(r[f-1])}Z(b){if(b>12||b<1)return-1;var f=a.$[b-1];return f+="月"}S(b){var f;switch(b){case 10:f="初十";break;case 20:f="二十";break;case 30:f="三十";break;default:f=a.M[Math.floor(b/10)],f+=a.p[b%10]}return f}A(b){return a.i[(b-4)%12]}j(b,f,e){if(b<1900||b>2100)return-1;if(1900==b&&1==f&&e<31)return-1;if(b)c=new Date(b,parseInt(""+f)-1,e);else var c=new Date;var r,t=0,d=(b=c.getFullYear(),f=c.getMonth()+1,e=c.getDate(),(Date.UTC(c.getFullYear(),c.getMonth(),c.getDate())-Date.UTC(1900,0,31))/864e5);for(r=1900;r<2101&&d>0;r++)d-=t=a.v(r);d<0&&(d+=t,r--);var n=new Date,o=!1;n.getFullYear()==b&&n.getMonth()+1==f&&n.getDate()==e&&(o=!0);var s=c.getDay(),l=a.p[s];0==s&&(s=7);var u=r,i=a.m(r),h=!1;for(r=1;r<13&&d>0;r++)i>0&&r==i+1&&0==h?(--r,h=!0,t=a.Y(u)):t=a.k(u,r),1==h&&r==i+1&&(h=!1),d-=t;0==d&&i>0&&r==i+1&&(h?h=!1:(h=!0,--r)),d<0&&(d+=t,--r);var D=r,p=d+1,M=f-1,y=a.L(u),$=a.G(u,2*f-1),v=a.G(u,2*f),Y=a.T(12*(b-1900)+f+11);e>=$&&(Y=a.T(12*(b-1900)+f+12));var g=!1,m=null;$==e&&(g=!0,m=a.h[2*f-2]),v==e&&(g=!0,m=a.h[2*f-1]);var w=Date.UTC(b,M,1,0,0,0,0)/864e5+25567+10,x=a.T(w+e-1),k=a.C(f,e);return{q:y,N:Y,O:x,X:u,B:D,F:p,H:a.A(u),J:(h?"闰":"")+a.Z(D),K:a.S(p),P:b,R:f,U:e,V:o,W:h,_:g,bb:s,fb:"星期"+l,eb:m,cb:k}}ab(b,f,e,c){c=!!c;let r=a.m(b);if(a.Y(b),c&&r!=f)return-1;if(2100==b&&12==f&&e>1||1900==b&&1==f&&e<31)return-1;let t=a.k(b,f),d=t;if(c&&(d=a.Y(b)),b<1900||b>2100||e>d)return-1;let n=0;for(let p=1900;p<b;p++)n+=a.v(p);let o=0,s=!1;for(let p=1;p<f;p++)o=a.m(b),s||o<=p&&o>0&&(n+=a.Y(b),s=!0),n+=a.k(b,p);c&&(n+=t);var l=Date.UTC(1900,1,30,0,0,0),u=new Date(864e5*(n+e-31)+l),i=u.getUTCFullYear(),h=u.getUTCMonth()+1,D=u.getUTCDate();return a.j(i,h,D)}rb(b,f){let e;e=f?new Date(f):new Date;let c=e.getTime()+864e5*b;e.setTime(c);let a=e.getFullYear(),r=e.getMonth()+1;r<10&&(r="0"+r);let t=e.getDate();return t<10&&(t="0"+t),a+"/"+r+"/"+t}}var a=new Calendar;const r=a;exports.Calendar=Calendar,exports.CalendarInstance=r,exports.defaultGregorian={tb:"元旦",nb:"情人节",ob:"妇女节",sb:"植树节",lb:"劳动节",ub:"青年节",ib:"儿童节",hb:"建党节",Db:"建军节",pb:"教师节",Mb:"国庆节",yb:"平安夜",$b:"圣诞节"},exports.defaultLunar={tb:"春节",Yb:"元宵节",gb:"龙头节",mb:"端午节",wb:"七夕节",xb:"中元节",kb:"中秋节",Ib:"重阳节",Mb:"寒衣节",Lb:"下元节",Cb:"腊八节",Tb:"小年"},exports.getYearMonthDay=function(b,c,r){c-=1;let t=(Date.UTC(b,c,r)-Date.UTC(1949,0,29))/864e5+1,d=0,n=0,o=0;for(let f=0;f<a.o.length;f++)if(t-=lunarYearDays(a.o[f]),t<=0){d=1949+f,t+=lunarYearDays(a.o[f]);break}for(let f=0;f<lunarYearMonths(a.o[d-1949]).length;f++)if(t-=lunarYearMonths(a.o[d-1949])[f],t<=0){const b=hasLeapMonth(a.o[d-1949]);n=b&&b<=f?b<f?f:b===f?"闰"+f:f+1:f+1,t+=lunarYearMonths(a.o[d-1949])[f];break}return o=t,n=hasLeapMonth(a.o[d-1949])&&"string"==typeof n&&n.indexOf("闰")>-1?`闰${f[+(/\d/.exec(n)||1)-1]}`:f[+(n||1)-1],d=getTianGan(d)+getDiZhi(d),o<11?o=`${e[10]}${e[o-1]}`:o>10&&o<20?o=`${e[9]}${e[o-11]}`:20===o?o=`${e[1]}${e[9]}`:o>20&&o<30?o=`${e[11]}${e[o-21]}`:30===o&&(o=`${e[2]}${e[9]}`),""+o},exports.getYearMonthDayNew=f=>{let e=(f=f||new Date).getFullYear(),c=f.getMonth()+1,a=f.getDate(),r=f.getDay();return{P:e,R:c,U:a,bb:r,Gb:f.getHours(),Zb:f.getMinutes(),Sb:f.getSeconds(),zb:b.Ab(r),time:b.jb(e,c,a)}},exports.sloarToLunar=function(b,c,r){c-=1;let t=(Date.UTC(b,c,r)-Date.UTC(1949,0,29))/864e5+1,d=0,n=0,o=0;for(let f=0;f<a.o.length;f++)if(t-=lunarYearDays(a.o[f]),t<=0){d=1949+f,t+=lunarYearDays(a.o[f]);break}for(let f=0;f<lunarYearMonths(a.o[d-1949]).length;f++)if(t-=lunarYearMonths(a.o[d-1949])[f],t<=0){const b=hasLeapMonth(a.o[d-1949]);n=b&&b<=f?b<f?f:hasLeapMonth(a.o[d-1949])===f?"闰"+f:f+1:f+1,t+=lunarYearMonths(a.o[d-1949])[f];break}if(o=t,hasLeapMonth(a.o[d-1949])&&"string"==typeof n&&n.indexOf("闰")>-1){const b=/\d/.exec(n);n=`闰${f[+(b||1)-1]}`}else n=f[+(n||1)-1];return d=getTianGan(d)+getDiZhi(d),o<11?o=`${e[10]}${e[o-1]}`:o>10&&o<20?o=`${e[9]}${e[o-11]}`:20===o?o=`${e[1]}${e[9]}`:o>20&&o<30?o=`${e[11]}${e[o-21]}`:30===o&&(o=`${e[2]}${e[9]}`),{qb:d,Nb:n,Ob:o,Xb:""}};