From 0d35f290b75c67527a4e60e6cef074b4b6d07d4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=87=E5=A4=A9?= Date: Tue, 30 Nov 2021 18:50:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=901.0=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .prettierrc.yaml | 3 +- Readme.md | 26 ++- build.js | 14 ++ img/demo.png | Bin 0 -> 51715 bytes img/demo1.png | Bin 96799 -> 0 bytes index.js | 124 +----------- lunar.js | 359 --------------------------------- package.json | 7 +- calendar.js => src/calendar.js | 21 +- src/index.js | 129 ++++++++++++ src/lunar/config.js | 303 ++++++++++++++++++++++++++++ src/lunar/index.js | 175 ++++++++++++++++ 12 files changed, 668 insertions(+), 493 deletions(-) create mode 100644 build.js create mode 100644 img/demo.png delete mode 100644 img/demo1.png mode change 100644 => 100755 index.js delete mode 100644 lunar.js rename calendar.js => src/calendar.js (86%) create mode 100644 src/index.js create mode 100644 src/lunar/config.js create mode 100644 src/lunar/index.js diff --git a/.prettierrc.yaml b/.prettierrc.yaml index d637788..c0e277f 100644 --- a/.prettierrc.yaml +++ b/.prettierrc.yaml @@ -6,4 +6,5 @@ printWidth: 100 useTabs: false tabWidth: 2 trailingComma: none -bracketSpacing: true \ No newline at end of file +bracketSpacing: true +arrowParens: avoid \ No newline at end of file diff --git a/Readme.md b/Readme.md index b49c3ca..de5ae35 100644 --- a/Readme.md +++ b/Readme.md @@ -6,25 +6,43 @@ \____\__,_|_|\___|_| |_|\__,_|\__,_|_| 终端版万年历 ``` +农历的计算, 只支持 1901-2100 范围内的。 -![demo1.png](./img/demo1.png) +![demo1.png](./img/demo.png) ## 安装 ```bash npm i -g bash-calendar +# 安装完之后, 可以使用 calendar命令 +# 也可以使用 简写的 cal命令 ``` ## 用法 > 用法: `cal [command] args...` -+ Commands: - * -h - 查看帮助文档 - * -v - 查看工具的版本 +- Commands: + * -y {year} - 打印指定年份的日历 + * -m - 打印指定月份的日历 + * -h - 查看帮助文档 + * -v - 查看程序的版本 +示例: + +```bash +cal # 不带参数打印当前年月 +cal -y # -y不接参数, 打印当前年的所有月份 +cal -y 2000 # 打印指定年份的所有月份 +cal -y 2021 5 # 打印指定年份, 指定月份 +cal -y 2000 -m 3 # 同上 +cal -m 5 # 打印当前年份的 指定月份 +``` ## 更新日志 +### v1.0.0 +* 完成农历显示、公历节日及农历节日的显示 + ### v0.0.1 * 初始化项目 diff --git a/build.js b/build.js new file mode 100644 index 0000000..daeddf9 --- /dev/null +++ b/build.js @@ -0,0 +1,14 @@ +const esbuild = require('esbuild') +const { version } = require('./package.json') + +esbuild.build({ + entryPoints: ['src/index.js'], + sourcemap: false, + bundle: true, + define: { 'process.env.APP_VERSION': `'${version}'` }, + platform: 'node', + target: 'node10', + minify: true, + // external: ['chalk'], + outfile: 'index.js' +}) diff --git a/img/demo.png b/img/demo.png new file mode 100644 index 0000000000000000000000000000000000000000..5c3b4d61f9e57722181d380ead0e2f390dfea699 GIT binary patch literal 51715 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

7A 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 RjSd3*k&{xAtPwW}`al0@kU; - * @date 2021/11/26 17:20:02 - */ - -import fs from 'iofs' -import { getThisYearMonth, drawCalendar } from './calendar.js' - -var { version } = JSON.parse(fs.cat('./package.json')) -var argvs = process.argv.slice(2) -var action = argvs.shift() -var [year, month] = getThisYearMonth() - -function drawOneYear(y) { - for (let i = 0; i < 12; i++) { - drawCalendar(y, i) - } -} - -function print(...args) { - args[0] = args[0].padEnd(20, ' ') - if (args.length > 1) { - args.splice(1, 0, ' - ') - } - console.log.apply(null, args) -} - -function print_help() { - print('='.repeat(64)) - print(`终端版万年历 v${version}, 作者: 宇天`) - print('='.repeat(64)) - print('用法: cal [command] args...') - print('Commands:') - print(' -y {year}', '打印指定年份的日历') - print(' -m', '打印指定月份的日历') - print(' -h', '查看帮助文档') - print(' -v', '查看程序的版本') - process.exit() -} - -switch (action) { - case '-y': - switch (argvs.length) { - // 再无其他参数, 由打印当前年份所有的日历 - case 0: - drawOneYear(year) - break - - // 有1~2个参数, cal -y 2020 2, cal -y 2020 5 - case 1: - case 2: - year = +argvs.shift() - month = +argvs.shift() - - if (year === year) { - if (month < 13 && month > 0) { - drawCalendar(year, month - 1) - } else { - drawOneYear(year) - } - } else { - console.log('-y 参数异常') - } - break - - // 3个参数 cal -y 2020 -m 1 - case 3: - action = argvs.shift() - month = +argvs.shift() - if (action === '-m' && month < 13 && month > 0) { - drawCalendar(year, month - 1) - } else { - console.log('-m 参数异常') - } - break - default: - console.log('-y 参数异常') - break - } - - break - - case '-m': - month = +argvs.shift() - if (month < 13 && month > 0) { - drawCalendar(year, month - 1) - } else { - console.log('-m 参数异常') - } - break - - case '-v': - print(version) - process.exit() - break - - default: - if (action) { - year = +action - month = +argvs.shift() - if (year === year) { - if (month < 13 && month > 0) { - drawCalendar(year, month - 1) - } else { - drawOneYear(year) - } - } else { - console.log('参数异常') - } - } else { - drawCalendar(year, month) - } - - break -} +var Qe=Object.create;var T=Object.defineProperty,e0=Object.defineProperties,t0=Object.getOwnPropertyDescriptor,n0=Object.getOwnPropertyDescriptors,r0=Object.getOwnPropertyNames,ne=Object.getOwnPropertySymbols,o0=Object.getPrototypeOf,re=Object.prototype.hasOwnProperty,s0=Object.prototype.propertyIsEnumerable;var oe=(e,t,n)=>t in e?T(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,se=(e,t)=>{for(var n in t||(t={}))re.call(t,n)&&oe(e,n,t[n]);if(ne)for(var n of ne(t))s0.call(t,n)&&oe(e,n,t[n]);return e},ae=(e,t)=>e0(e,n0(t)),a0=e=>T(e,"__esModule",{value:!0});var v=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var l0=(e,t,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of r0(t))!re.call(e,r)&&r!=="default"&&T(e,r,{get:()=>t[r],enumerable:!(n=t0(t,r))||n.enumerable});return e},le=e=>l0(a0(T(e!=null?Qe(o0(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var ie=v((q0,ce)=>{"use strict";ce.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var q=v((G0,fe)=>{var S=ie(),ue={};for(let e of Object.keys(S))ue[S[e]]=e;var i={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};fe.exports=i;for(let e of Object.keys(i)){if(!("channels"in i[e]))throw new Error("missing channels property: "+e);if(!("labels"in i[e]))throw new Error("missing channel labels property: "+e);if(i[e].labels.length!==i[e].channels)throw new Error("channel and label counts mismatch: "+e);let{channels:t,labels:n}=i[e];delete i[e].channels,delete i[e].labels,Object.defineProperty(i[e],"channels",{value:t}),Object.defineProperty(i[e],"labels",{value:n})}i.rgb.hsl=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,o=Math.min(t,n,r),s=Math.max(t,n,r),a=s-o,c,l;s===o?c=0:t===s?c=(n-r)/a:n===s?c=2+(r-t)/a:r===s&&(c=4+(t-n)/a),c=Math.min(c*60,360),c<0&&(c+=360);let u=(o+s)/2;return s===o?l=0:u<=.5?l=a/(s+o):l=a/(2-s-o),[c,l*100,u*100]};i.rgb.hsv=function(e){let t,n,r,o,s,a=e[0]/255,c=e[1]/255,l=e[2]/255,u=Math.max(a,c,l),h=u-Math.min(a,c,l),b=function(Je){return(u-Je)/6/h+1/2};return h===0?(o=0,s=0):(s=h/u,t=b(a),n=b(c),r=b(l),a===u?o=r-n:c===u?o=1/3+t-r:l===u&&(o=2/3+n-t),o<0?o+=1:o>1&&(o-=1)),[o*360,s*100,u*100]};i.rgb.hwb=function(e){let t=e[0],n=e[1],r=e[2],o=i.rgb.hsl(e)[0],s=1/255*Math.min(t,Math.min(n,r));return r=1-1/255*Math.max(t,Math.max(n,r)),[o,s*100,r*100]};i.rgb.cmyk=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,o=Math.min(1-t,1-n,1-r),s=(1-t-o)/(1-o)||0,a=(1-n-o)/(1-o)||0,c=(1-r-o)/(1-o)||0;return[s*100,a*100,c*100,o*100]};function c0(e,t){return(e[0]-t[0])**2+(e[1]-t[1])**2+(e[2]-t[2])**2}i.rgb.keyword=function(e){let t=ue[e];if(t)return t;let n=1/0,r;for(let o of Object.keys(S)){let s=S[o],a=c0(e,s);a.04045?((t+.055)/1.055)**2.4:t/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;let o=t*.4124+n*.3576+r*.1805,s=t*.2126+n*.7152+r*.0722,a=t*.0193+n*.1192+r*.9505;return[o*100,s*100,a*100]};i.rgb.lab=function(e){let t=i.rgb.xyz(e),n=t[0],r=t[1],o=t[2];n/=95.047,r/=100,o/=108.883,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116;let s=116*r-16,a=500*(n-r),c=200*(r-o);return[s,a,c]};i.hsl.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100,o,s,a;if(n===0)return a=r*255,[a,a,a];r<.5?o=r*(1+n):o=r+n-r*n;let c=2*r-o,l=[0,0,0];for(let u=0;u<3;u++)s=t+1/3*-(u-1),s<0&&s++,s>1&&s--,6*s<1?a=c+(o-c)*6*s:2*s<1?a=o:3*s<2?a=c+(o-c)*(2/3-s)*6:a=c,l[u]=a*255;return l};i.hsl.hsv=function(e){let t=e[0],n=e[1]/100,r=e[2]/100,o=n,s=Math.max(r,.01);r*=2,n*=r<=1?r:2-r,o*=s<=1?s:2-s;let a=(r+n)/2,c=r===0?2*o/(s+o):2*n/(r+n);return[t,c*100,a*100]};i.hsv.rgb=function(e){let t=e[0]/60,n=e[1]/100,r=e[2]/100,o=Math.floor(t)%6,s=t-Math.floor(t),a=255*r*(1-n),c=255*r*(1-n*s),l=255*r*(1-n*(1-s));switch(r*=255,o){case 0:return[r,l,a];case 1:return[c,r,a];case 2:return[a,r,l];case 3:return[a,c,r];case 4:return[l,a,r];case 5:return[r,a,c]}};i.hsv.hsl=function(e){let t=e[0],n=e[1]/100,r=e[2]/100,o=Math.max(r,.01),s,a;a=(2-n)*r;let c=(2-n)*o;return s=n*o,s/=c<=1?c:2-c,s=s||0,a/=2,[t,s*100,a*100]};i.hwb.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100,o=n+r,s;o>1&&(n/=o,r/=o);let a=Math.floor(6*t),c=1-r;s=6*t-a,(a&1)!=0&&(s=1-s);let l=n+s*(c-n),u,h,b;switch(a){default:case 6:case 0:u=c,h=l,b=n;break;case 1:u=l,h=c,b=n;break;case 2:u=n,h=c,b=l;break;case 3:u=n,h=l,b=c;break;case 4:u=l,h=n,b=c;break;case 5:u=c,h=n,b=l;break}return[u*255,h*255,b*255]};i.cmyk.rgb=function(e){let t=e[0]/100,n=e[1]/100,r=e[2]/100,o=e[3]/100,s=1-Math.min(1,t*(1-o)+o),a=1-Math.min(1,n*(1-o)+o),c=1-Math.min(1,r*(1-o)+o);return[s*255,a*255,c*255]};i.xyz.rgb=function(e){let t=e[0]/100,n=e[1]/100,r=e[2]/100,o,s,a;return o=t*3.2406+n*-1.5372+r*-.4986,s=t*-.9689+n*1.8758+r*.0415,a=t*.0557+n*-.204+r*1.057,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,o=Math.min(Math.max(0,o),1),s=Math.min(Math.max(0,s),1),a=Math.min(Math.max(0,a),1),[o*255,s*255,a*255]};i.xyz.lab=function(e){let t=e[0],n=e[1],r=e[2];t/=95.047,n/=100,r/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116;let o=116*n-16,s=500*(t-n),a=200*(n-r);return[o,s,a]};i.lab.xyz=function(e){let t=e[0],n=e[1],r=e[2],o,s,a;s=(t+16)/116,o=n/500+s,a=s-r/200;let c=s**3,l=o**3,u=a**3;return s=c>.008856?c:(s-16/116)/7.787,o=l>.008856?l:(o-16/116)/7.787,a=u>.008856?u:(a-16/116)/7.787,o*=95.047,s*=100,a*=108.883,[o,s,a]};i.lab.lch=function(e){let t=e[0],n=e[1],r=e[2],o;o=Math.atan2(r,n)*360/2/Math.PI,o<0&&(o+=360);let a=Math.sqrt(n*n+r*r);return[t,a,o]};i.lch.lab=function(e){let t=e[0],n=e[1],o=e[2]/360*2*Math.PI,s=n*Math.cos(o),a=n*Math.sin(o);return[t,s,a]};i.rgb.ansi16=function(e,t=null){let[n,r,o]=e,s=t===null?i.rgb.hsv(e)[2]:t;if(s=Math.round(s/50),s===0)return 30;let a=30+(Math.round(o/255)<<2|Math.round(r/255)<<1|Math.round(n/255));return s===2&&(a+=60),a};i.hsv.ansi16=function(e){return i.rgb.ansi16(i.hsv.rgb(e),e[2])};i.rgb.ansi256=function(e){let t=e[0],n=e[1],r=e[2];return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)};i.ansi16.rgb=function(e){let t=e%10;if(t===0||t===7)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];let n=(~~(e>50)+1)*.5,r=(t&1)*n*255,o=(t>>1&1)*n*255,s=(t>>2&1)*n*255;return[r,o,s]};i.ansi256.rgb=function(e){if(e>=232){let s=(e-232)*10+8;return[s,s,s]}e-=16;let t,n=Math.floor(e/36)/5*255,r=Math.floor((t=e%36)/6)/5*255,o=t%6/5*255;return[n,r,o]};i.rgb.hex=function(e){let n=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return"000000".substring(n.length)+n};i.hex.rgb=function(e){let t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let n=t[0];t[0].length===3&&(n=n.split("").map(c=>c+c).join(""));let r=parseInt(n,16),o=r>>16&255,s=r>>8&255,a=r&255;return[o,s,a]};i.rgb.hcg=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,o=Math.max(Math.max(t,n),r),s=Math.min(Math.min(t,n),r),a=o-s,c,l;return a<1?c=s/(1-a):c=0,a<=0?l=0:o===t?l=(n-r)/a%6:o===n?l=2+(r-t)/a:l=4+(t-n)/a,l/=6,l%=1,[l*360,a*100,c*100]};i.hsl.hcg=function(e){let t=e[1]/100,n=e[2]/100,r=n<.5?2*t*n:2*t*(1-n),o=0;return r<1&&(o=(n-.5*r)/(1-r)),[e[0],r*100,o*100]};i.hsv.hcg=function(e){let t=e[1]/100,n=e[2]/100,r=t*n,o=0;return r<1&&(o=(n-r)/(1-r)),[e[0],r*100,o*100]};i.hcg.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100;if(n===0)return[r*255,r*255,r*255];let o=[0,0,0],s=t%1*6,a=s%1,c=1-a,l=0;switch(Math.floor(s)){case 0:o[0]=1,o[1]=a,o[2]=0;break;case 1:o[0]=c,o[1]=1,o[2]=0;break;case 2:o[0]=0,o[1]=1,o[2]=a;break;case 3:o[0]=0,o[1]=c,o[2]=1;break;case 4:o[0]=a,o[1]=0,o[2]=1;break;default:o[0]=1,o[1]=0,o[2]=c}return l=(1-n)*r,[(n*o[0]+l)*255,(n*o[1]+l)*255,(n*o[2]+l)*255]};i.hcg.hsv=function(e){let t=e[1]/100,n=e[2]/100,r=t+n*(1-t),o=0;return r>0&&(o=t/r),[e[0],o*100,r*100]};i.hcg.hsl=function(e){let t=e[1]/100,r=e[2]/100*(1-t)+.5*t,o=0;return r>0&&r<.5?o=t/(2*r):r>=.5&&r<1&&(o=t/(2*(1-r))),[e[0],o*100,r*100]};i.hcg.hwb=function(e){let t=e[1]/100,n=e[2]/100,r=t+n*(1-t);return[e[0],(r-t)*100,(1-r)*100]};i.hwb.hcg=function(e){let t=e[1]/100,n=e[2]/100,r=1-n,o=r-t,s=0;return o<1&&(s=(r-o)/(1-o)),[e[0],o*100,s*100]};i.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]};i.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]};i.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]};i.gray.hsl=function(e){return[0,0,e[0]]};i.gray.hsv=i.gray.hsl;i.gray.hwb=function(e){return[0,100,e[0]]};i.gray.cmyk=function(e){return[0,0,0,e[0]]};i.gray.lab=function(e){return[e[0],0,0]};i.gray.hex=function(e){let t=Math.round(e[0]/100*255)&255,r=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(r.length)+r};i.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}});var de=v((U0,he)=>{var I=q();function i0(){let e={},t=Object.keys(I);for(let n=t.length,r=0;r{var G=q(),d0=de(),O={},b0=Object.keys(G);function g0(e){let t=function(...n){let r=n[0];return r==null?r:(r.length>1&&(n=r),e(n))};return"conversion"in e&&(t.conversion=e.conversion),t}function x0(e){let t=function(...n){let r=n[0];if(r==null)return r;r.length>1&&(n=r);let o=e(n);if(typeof o=="object")for(let s=o.length,a=0;a{O[e]={},Object.defineProperty(O[e],"channels",{value:G[e].channels}),Object.defineProperty(O[e],"labels",{value:G[e].labels});let t=d0(e);Object.keys(t).forEach(r=>{let o=t[r];O[e][r]=x0(o),O[e][r].raw=g0(o)})});be.exports=O});var ke=v((H0,ve)=>{"use strict";var xe=(e,t)=>(...n)=>`[${e(...n)+t}m`,pe=(e,t)=>(...n)=>{let r=e(...n);return`[${38+t};5;${r}m`},ye=(e,t)=>(...n)=>{let r=e(...n);return`[${38+t};2;${r[0]};${r[1]};${r[2]}m`},L=e=>e,me=(e,t,n)=>[e,t,n],M=(e,t,n)=>{Object.defineProperty(e,t,{get:()=>{let r=n();return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0}),r},enumerable:!0,configurable:!0})},U,R=(e,t,n,r)=>{U===void 0&&(U=ge());let o=r?10:0,s={};for(let[a,c]of Object.entries(U)){let l=a==="ansi16"?"ansi":a;a===t?s[l]=e(n,o):typeof c=="object"&&(s[l]=e(c[t],o))}return s};function p0(){let e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.gray=t.color.blackBright,t.bgColor.bgGray=t.bgColor.bgBlackBright,t.color.grey=t.color.blackBright,t.bgColor.bgGrey=t.bgColor.bgBlackBright;for(let[n,r]of Object.entries(t)){for(let[o,s]of Object.entries(r))t[o]={open:`[${s[0]}m`,close:`[${s[1]}m`},r[o]=t[o],e.set(s[0],s[1]);Object.defineProperty(t,n,{value:r,enumerable:!1})}return Object.defineProperty(t,"codes",{value:e,enumerable:!1}),t.color.close="",t.bgColor.close="",M(t.color,"ansi",()=>R(xe,"ansi16",L,!1)),M(t.color,"ansi256",()=>R(pe,"ansi256",L,!1)),M(t.color,"ansi16m",()=>R(ye,"rgb",me,!1)),M(t.bgColor,"ansi",()=>R(xe,"ansi16",L,!0)),M(t.bgColor,"ansi256",()=>R(pe,"ansi256",L,!0)),M(t.bgColor,"ansi16m",()=>R(ye,"rgb",me,!0)),t}Object.defineProperty(ve,"exports",{enumerable:!0,get:p0})});var Ce=v((z0,we)=>{"use strict";we.exports=(e,t=process.argv)=>{let n=e.startsWith("-")?"":e.length===1?"-":"--",r=t.indexOf(n+e),o=t.indexOf("--");return r!==-1&&(o===-1||r{"use strict";var y0=require("os"),Ee=require("tty"),y=Ce(),{env:d}=process,k;y("no-color")||y("no-colors")||y("color=false")||y("color=never")?k=0:(y("color")||y("colors")||y("color=true")||y("color=always"))&&(k=1);"FORCE_COLOR"in d&&(d.FORCE_COLOR==="true"?k=1:d.FORCE_COLOR==="false"?k=0:k=d.FORCE_COLOR.length===0?1:Math.min(parseInt(d.FORCE_COLOR,10),3));function V(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function H(e,t){if(k===0)return 0;if(y("color=16m")||y("color=full")||y("color=truecolor"))return 3;if(y("color=256"))return 2;if(e&&!t&&k===void 0)return 0;let n=k||0;if(d.TERM==="dumb")return n;if(process.platform==="win32"){let r=y0.release().split(".");return Number(r[0])>=10&&Number(r[2])>=10586?Number(r[2])>=14931?3:2:1}if("CI"in d)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(r=>r in d)||d.CI_NAME==="codeship"?1:n;if("TEAMCITY_VERSION"in d)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(d.TEAMCITY_VERSION)?1:0;if(d.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in d){let r=parseInt((d.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(d.TERM_PROGRAM){case"iTerm.app":return r>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(d.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(d.TERM)||"COLORTERM"in d?1:n}function m0(e){let t=H(e,e&&e.isTTY);return V(t)}Oe.exports={supportsColor:m0,stdout:V(H(!0,Ee.isatty(1))),stderr:V(H(!0,Ee.isatty(2)))}});var Ae=v((K0,Re)=>{"use strict";var v0=(e,t,n)=>{let r=e.indexOf(t);if(r===-1)return e;let o=t.length,s=0,a="";do a+=e.substr(s,r-s)+t+n,s=r+o,r=e.indexOf(t,s);while(r!==-1);return a+=e.substr(s),a},k0=(e,t,n,r)=>{let o=0,s="";do{let a=e[r-1]==="\r";s+=e.substr(o,(a?r-1:r)-o)+t+(a?`\r +`:` +`)+n,o=r+1,r=e.indexOf(` +`,o)}while(r!==-1);return s+=e.substr(o),s};Re.exports={stringReplaceAll:v0,stringEncaseCRLFWithFirstIndex:k0}});var Te=v((X0,je)=>{"use strict";var w0=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,Se=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,C0=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,E0=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,O0=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a","\x07"]]);function _e(e){let t=e[0]==="u",n=e[1]==="{";return t&&!n&&e.length===5||e[0]==="x"&&e.length===3?String.fromCharCode(parseInt(e.slice(1),16)):t&&n?String.fromCodePoint(parseInt(e.slice(2,-1),16)):O0.get(e)||e}function M0(e,t){let n=[],r=t.trim().split(/\s*,\s*/g),o;for(let s of r){let a=Number(s);if(!Number.isNaN(a))n.push(a);else if(o=s.match(C0))n.push(o[2].replace(E0,(c,l,u)=>l?_e(l):u));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${e}')`)}return n}function R0(e){Se.lastIndex=0;let t=[],n;for(;(n=Se.exec(e))!==null;){let r=n[1];if(n[2]){let o=M0(r,n[2]);t.push([r].concat(o))}else t.push([r])}return t}function Be(e,t){let n={};for(let o of t)for(let s of o.styles)n[s[0]]=o.inverse?null:s.slice(1);let r=e;for(let[o,s]of Object.entries(n))if(!!Array.isArray(s)){if(!(o in r))throw new Error(`Unknown Chalk style: ${o}`);r=s.length>0?r[o](...s):r[o]}return r}je.exports=(e,t)=>{let n=[],r=[],o=[];if(t.replace(w0,(s,a,c,l,u,h)=>{if(a)o.push(_e(a));else if(l){let b=o.join("");o=[],r.push(n.length===0?b:Be(e,n)(b)),n.push({inverse:c,styles:R0(l)})}else if(u){if(n.length===0)throw new Error("Found extraneous } in Chalk template literal");r.push(Be(e,n)(o.join(""))),o=[],n.pop()}else o.push(h)}),r.push(o.join("")),n.length>0){let s=`Chalk template literal is missing ${n.length} closing bracket${n.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return r.join("")}});var Z=v((Z0,Ye)=>{"use strict";var _=ke(),{stdout:z,stderr:W}=Me(),{stringReplaceAll:A0,stringEncaseCRLFWithFirstIndex:S0}=Ae(),{isArray:N}=Array,Ie=["ansi","ansi","ansi256","ansi16m"],A=Object.create(null),_0=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let n=z?z.level:0;e.level=t.level===void 0?n:t.level},Le=class{constructor(t){return Ne(t)}},Ne=e=>{let t={};return _0(t,e),t.template=(...n)=>De(t.template,...n),Object.setPrototypeOf(t,F.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=Le,t.template};function F(e){return Ne(e)}for(let[e,t]of Object.entries(_))A[e]={get(){let n=P(this,K(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,e,{value:n}),n}};A.visible={get(){let e=P(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:e}),e}};var Fe=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let e of Fe)A[e]={get(){let{level:t}=this;return function(...n){let r=K(_.color[Ie[t]][e](...n),_.color.close,this._styler);return P(this,r,this._isEmpty)}}};for(let e of Fe){let t="bg"+e[0].toUpperCase()+e.slice(1);A[t]={get(){let{level:n}=this;return function(...r){let o=K(_.bgColor[Ie[n]][e](...r),_.bgColor.close,this._styler);return P(this,o,this._isEmpty)}}}}var B0=Object.defineProperties(()=>{},ae(se({},A),{level:{enumerable:!0,get(){return this._generator.level},set(e){this._generator.level=e}}})),K=(e,t,n)=>{let r,o;return n===void 0?(r=e,o=t):(r=n.openAll+e,o=t+n.closeAll),{open:e,close:t,openAll:r,closeAll:o,parent:n}},P=(e,t,n)=>{let r=(...o)=>N(o[0])&&N(o[0].raw)?Pe(r,De(r,...o)):Pe(r,o.length===1?""+o[0]:o.join(" "));return Object.setPrototypeOf(r,B0),r._generator=e,r._styler=t,r._isEmpty=n,r},Pe=(e,t)=>{if(e.level<=0||!t)return e._isEmpty?"":t;let n=e._styler;if(n===void 0)return t;let{openAll:r,closeAll:o}=n;if(t.indexOf("")!==-1)for(;n!==void 0;)t=A0(t,n.close,n.open),n=n.parent;let s=t.indexOf(` +`);return s!==-1&&(t=S0(t,o,r,s)),r+t+o},X,De=(e,...t)=>{let[n]=t;if(!N(n)||!N(n.raw))return t.join(" ");let r=t.slice(1),o=[n.raw[0]];for(let s=1;s2100)return l;for(let u=1900;u<=2100;u++){let h=j0(u);if(s-=h,s<=0){l.year=u,s+=h;break}}a=He(l.year),c=Q(l.year);for(let u=0;u0&&u>=c&&(l.leap=u===c,l.month-=1);break}return l.festival=Ve[`${t+1}.${n}`],l.leap||(l.month===11&&l.day===a.pop()?l.festival=J["12.30"]:l.festival=J[`${l.month+1}.${l.day}`]||l.festival),l.yearCN=ee(l.year),l.monthCN=(l.leap>0?"\u95F0":"")+$e[l.month]+"\u6708",l.day<11?l.dayCN=m[0]+m[l.day]:l.day<20?l.dayCN=m[10]+m[l.day-10]:l.day===20?l.dayCN=m[2]+m[10]:l.day<30?l.dayCN=m[20]+m[l.day-20]:l.day===30&&(l.dayCN=m[3]+m[10]),l.short=l.festival?l.festival:l.day===1?l.monthCN:l.dayCN,l}function j0(e){var t=He(e);return t.reduce((n,r)=>n+=r,0)}function Q(e){var t=Y[e-1900];return t&15}function T0(e){var t=Y[e-1900],n=Q(e);return n>0?t&983040?30:29:0}function He(e){var t=Y[e-1900],n=Q(e),r=T0(e),o=[];for(let s=32768;s>8;s>>=1)o.push(t&s?30:29);return n>0&&o.splice(n,0,r),o}function ee(e){var t=(e-3)%10,n=(e-3)%12;return t=t===0?10:t,n=n===0?12:n,Ge[t-1]+Ue[n-1]+qe[(e-4)%12]+"\u5E74"}var I0=["\u65E5","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D"].map((e,t)=>(e="\u661F\u671F"+e,(t===0||t===6)&&(e=f.default.red(e))," "+e+" "+f.default.grey("|"))),B=f.default.grey("|"),nt=f.default.grey("|"+(" ".repeat(10)+"|").repeat(7));function ze(e="",t=" "){return f.default.grey(e+(t.repeat(10)+"|").repeat(7))}function We(){var e=new Date;return[e.getFullYear(),e.getMonth()]}function Ke(e,t){return new Date(e,t+1,0).getDate()}function Xe(e,t,n){return new Date(e,t,n||1).getDay()}function L0({year:e,month:t,day:n},r){return r.year===e&&r.month===t&&r.day===n}function N0(){var e=new Date;return{year:e.getFullYear(),month:e.getMonth(),day:e.getDate()}}function F0(e,t){var n=Ke(e,t-1),r=Ke(e,t),o=1-Xe(e,t),s=0,a=N0(),c=[];for(let l=o;l<=r;l++){let u={day:l<1?n- -l:(l+"").padStart(2,"0")};if(l>0){let h=Xe(e,t,l),b=$(e,t,l);u.weekend=h===0||h===6,u.picked=!!L0({year:e,month:t,day:l},a),u.lunar=b.short,u.highlight=!!b.festival}else u.grey=1,u.lunar=$(e,t-1,n+l).short;c.push(u)}s=c.length%7,s=s>0?7-s:0;for(let l=1;l<=s;l++)c.push({day:(l+"").padStart(2,"0"),lunar:$(e,t+1,l).short,grey:1});return c}function P0(e,t){var n=`${e}\u5E74${t+1}\u6708${" ".repeat(10)}${ee(e,t)}`;n=f.default.grey("| ")+f.default.cyan(n)+" ".repeat(75-n.length-2)+f.default.grey("|"),console.log(f.default.grey(" "+"_".repeat(76))),console.log(f.default.grey("|"+" ".repeat(76)+"|")),console.log(n),console.log(f.default.grey("|"+"_".repeat(76)+"|")),console.log(ze("|")),console.log(f.default.grey("|")+I0.join("")),console.log(ze("|","_"))}function D0(e,t){var n=F0(e,t),r=0;for(let o=0;o<3*Math.ceil(n.length/7)+1;o++){let s="";for(let a=0;a<7;a++){let c=n[r+a];if(!c)break;switch(a===0&&(s+=B),o%3){case 0:o===0?s+=f.default.grey(" ".repeat(10)+"|"):(s+=f.default.grey("-".repeat(a===6?10:11)+(a===6?"|":"")),a===6&&(r+=7));break;case 1:c.picked?s+=f.default.bgRed.whiteBright.bold(" ".repeat(4)+c.day+" ".repeat(4))+B:(c.grey?c.day=f.default.grey(c.day):c.weekend?c.day=f.default.redBright.bold(c.day):c.day=f.default.whiteBright.bold(c.day),s+=" ".repeat(4)+c.day+" ".repeat(4)+B);break;case 2:if(c.picked)s+=f.default.bgRed.white.bold(" ".repeat(3)+c.lunar+" ".repeat(3))+B;else{let l=5;c.lunar&&(l=(10-c.lunar.length*2)/2,c.lunar=c.highlight?f.default.cyan.dim(c.lunar):f.default.grey(c.lunar)),s+=" ".repeat(l)+c.lunar+" ".repeat(l)+B}break}}console.log(s)}console.log("")}function C(e,t){P0(e,t),D0(e,t)}var Ze="1.0.0",w=process.argv.slice(2),j=w.shift(),[p,g]=We();function te(e){for(let t=0;t<12;t++)C(e,t)}function x(...e){e[0]=e[0].padEnd(20," "),e.length>1&&e.splice(1,0," - "),console.log.apply(null,e)}function Y0(){x("=".repeat(64)),x(`\u7EC8\u7AEF\u7248\u4E07\u5E74\u5386 v${Ze}, \u4F5C\u8005: \u5B87\u5929`),x("=".repeat(64)),x("\u7528\u6CD5: cal [command] args..."),x("Commands:"),x(" -y {year}","\u6253\u5370\u6307\u5B9A\u5E74\u4EFD\u7684\u65E5\u5386"),x(" -m","\u6253\u5370\u6307\u5B9A\u6708\u4EFD\u7684\u65E5\u5386"),x(" -h","\u67E5\u770B\u5E2E\u52A9\u6587\u6863"),x(" -v",`\u67E5\u770B\u7A0B\u5E8F\u7684\u7248\u672C +`),x("\u793A\u4F8B: "),x(" cal "+E.default.grey("# \u4E0D\u5E26\u53C2\u6570\u6253\u5370\u5F53\u524D\u5E74\u6708")),x(" cal -y "+E.default.grey("# -y \u4E0D\u63A5\u53C2\u6570, \u6253\u5370\u5F53\u524D\u5E74\u7684\u6240\u6709\u6708\u4EFD")),x(" cal -y 2000 "+E.default.grey("# \u6253\u5370\u6307\u5B9A\u5E74\u4EFD\u7684\u6240\u6709\u6708\u4EFD")),x(" cal -y 2021 5 "+E.default.grey("# \u6253\u5370\u6307\u5B9A\u5E74\u4EFD, \u6307\u5B9A\u6708\u4EFD")),x(" cal -y 2000 -m 3 "+E.default.grey("# \u540C\u4E0A")),x(" cal -m 5 "+E.default.grey("# \u6253\u5370\u5F53\u524D\u5E74\u4EFD\u7684 \u6307\u5B9A\u6708\u4EFD")),process.exit()}switch(j){case"-y":switch(w.length){case 0:te(p);break;case 1:case 2:p=+w.shift(),g=+w.shift(),p===p?g<13&&g>0?C(p,g-1):te(p):console.log("-y \u53C2\u6570\u5F02\u5E38");break;case 3:j=w.shift(),g=+w.shift(),j==="-m"&&g<13&&g>0?C(p,g-1):console.log("-m \u53C2\u6570\u5F02\u5E38");break;default:console.log("-y \u53C2\u6570\u5F02\u5E38");break}break;case"-m":g=+w.shift(),g<13&&g>0?C(p,g-1):console.log("-m \u53C2\u6570\u5F02\u5E38");break;case"-v":x(Ze);break;case"-h":Y0();break;default:j?(p=+j,g=+w.shift(),p===p?g<13&&g>0?C(p,g-1):te(p):console.log("\u53C2\u6570\u5F02\u5E38")):C(p,g);break}process.exit(); diff --git a/lunar.js b/lunar.js deleted file mode 100644 index 75e799d..0000000 --- a/lunar.js +++ /dev/null @@ -1,359 +0,0 @@ -/* 公历转农历代码思路: -1、建立农历年份查询表 -2、计算输入公历日期与公历基准的相差天数 -3、从农历基准开始遍历农历查询表,计算自农历基准之后每一年的天数,并用相差天数依次相减,确定农历年份 -4、利用剩余相差天数以及农历每个月的天数确定农历月份 -5、利用剩余相差天数确定农历哪一天 */ - -// 农历1949-2100年查询表 -const LUNAR_YEARS = [ - 0x0b557, //1949 - 0x06ca0, - 0x0b550, - 0x15355, - 0x04da0, - 0x0a5b0, - 0x14573, - 0x052b0, - 0x0a9a8, - 0x0e950, - 0x06aa0, //1950-1959 - 0x0aea6, - 0x0ab50, - 0x04b60, - 0x0aae4, - 0x0a570, - 0x05260, - 0x0f263, - 0x0d950, - 0x05b57, - 0x056a0, //1960-1969 - 0x096d0, - 0x04dd5, - 0x04ad0, - 0x0a4d0, - 0x0d4d4, - 0x0d250, - 0x0d558, - 0x0b540, - 0x0b6a0, - 0x195a6, //1970-1979 - 0x095b0, - 0x049b0, - 0x0a974, - 0x0a4b0, - 0x0b27a, - 0x06a50, - 0x06d40, - 0x0af46, - 0x0ab60, - 0x09570, //1980-1989 - 0x04af5, - 0x04970, - 0x064b0, - 0x074a3, - 0x0ea50, - 0x06b58, - 0x055c0, - 0x0ab60, - 0x096d5, - 0x092e0, //1990-1999 - 0x0c960, - 0x0d954, - 0x0d4a0, - 0x0da50, - 0x07552, - 0x056a0, - 0x0abb7, - 0x025d0, - 0x092d0, - 0x0cab5, //2000-2009 - 0x0a950, - 0x0b4a0, - 0x0baa4, - 0x0ad50, - 0x055d9, - 0x04ba0, - 0x0a5b0, - 0x15176, - 0x052b0, - 0x0a930, //2010-2019 - 0x07954, - 0x06aa0, - 0x0ad50, - 0x05b52, - 0x04b60, - 0x0a6e6, - 0x0a4e0, - 0x0d260, - 0x0ea65, - 0x0d530, //2020-2029 - 0x05aa0, - 0x076a3, - 0x096d0, - 0x04afb, - 0x04ad0, - 0x0a4d0, - 0x1d0b6, - 0x0d250, - 0x0d520, - 0x0dd45, //2030-2039 - 0x0b5a0, - 0x056d0, - 0x055b2, - 0x049b0, - 0x0a577, - 0x0a4b0, - 0x0aa50, - 0x1b255, - 0x06d20, - 0x0ada0, //2040-2049 - 0x14b63, - 0x09370, - 0x049f8, - 0x04970, - 0x064b0, - 0x168a6, - 0x0ea50, - 0x06b20, - 0x1a6c4, - 0x0aae0, //2050-2059 - 0x0a2e0, - 0x0d2e3, - 0x0c960, - 0x0d557, - 0x0d4a0, - 0x0da50, - 0x05d55, - 0x056a0, - 0x0a6d0, - 0x055d4, //2060-2069 - 0x052d0, - 0x0a9b8, - 0x0a950, - 0x0b4a0, - 0x0b6a6, - 0x0ad50, - 0x055a0, - 0x0aba4, - 0x0a5b0, - 0x052b0, //2070-2079 - 0x0b273, - 0x06930, - 0x07337, - 0x06aa0, - 0x0ad50, - 0x14b55, - 0x04b60, - 0x0a570, - 0x054e4, - 0x0d160, //2080-2089 - 0x0e968, - 0x0d520, - 0x0daa0, - 0x16aa6, - 0x056d0, - 0x04ae0, - 0x0a9d4, - 0x0a2d0, - 0x0d150, - 0x0f252, //2090-2099 - 0x0d520 //2100 -] - -const LUNAR_MONTH = ['正', '二', '三', '四', '五', '六', '七', '八', '九', '十', '冬', '腊'] -const LUNAR_DAY = { - 0: '初', - 1: '一', - 2: '二', - 3: '三', - 4: '四', - 5: '五', - 6: '六', - 7: '七', - 8: '八', - 9: '九', - 10: '十', - 20: '廿' -} -// 生肖、天干、地支, 节气 -const ZODIAC = ['鼠', '牛', '虎', '兔', '龙', '蛇', '马', '羊', '猴', '鸡', '狗', '猪'] -const HEAVENLY_STEMS = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸'] -const EARTHLY_BRANCHES = ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥'] -const SOLAR_TERMS = [ - '立春', - '雨水', - '惊蛰', - '春分', - '清明', - '谷雨', - '立夏', - '小满', - '芒种', - '夏至', - '小暑', - '大暑', - '立秋', - '处暑', - '白露', - '秋分', - '寒露', - '霜降', - '立冬', - '小雪', - '大雪', - '冬至', - '小寒', - '大寒' -] - -// 公历转农历函数 -export function sloar2lunar(sy, sm, sd) { - // 计算与公历基准的相差天数 - let daySpan = (Date.UTC(sy, sm, sd) - Date.UTC(1949, 0, 29)) / (24 * 60 * 60 * 1000) + 1 - let ly, lm, ld - // 确定输出的农历年份 - for (let j = 0; j < LUNAR_YEARS.length; j++) { - daySpan -= lunarYearDays(LUNAR_YEARS[j]) - if (daySpan <= 0) { - ly = 1949 + j - // 获取农历年份确定后的剩余天数 - daySpan += lunarYearDays(LUNAR_YEARS[j]) - break - } - } - - // 确定输出的农历月份 - for (let k = 0; k < lunarYearMonths(LUNAR_YEARS[ly - 1949]).length; k++) { - daySpan -= lunarYearMonths(LUNAR_YEARS[ly - 1949])[k] - if (daySpan <= 0) { - // 有闰月时,月份的数组长度会变成13,因此,当闰月月份小于等于k时,lm不需要加1 - if (hasLeapMonth(LUNAR_YEARS[ly - 1949]) && hasLeapMonth(LUNAR_YEARS[ly - 1949]) <= k) { - if (hasLeapMonth(LUNAR_YEARS[ly - 1949]) < k) { - lm = k - } else if (hasLeapMonth(LUNAR_YEARS[ly - 1949]) === k) { - lm = '闰' + k - } else { - lm = k + 1 - } - } else { - lm = k + 1 - } - // 获取农历月份确定后的剩余天数 - daySpan += lunarYearMonths(LUNAR_YEARS[ly - 1949])[k] - break - } - } - - // 确定输出农历哪一天 - ld = daySpan - - // console.log(sm, sd, ly, lm, ld) - // 将计算出来的农历月份转换成汉字月份,闰月需要在前面加上闰字 - if (hasLeapMonth(LUNAR_YEARS[ly - 1949]) && (typeof lm === 'string' && lm.indexOf('闰') > -1)) { - lm = `闰${LUNAR_MONTH[/\d/.exec(lm) - 1]}` - } else { - lm = LUNAR_MONTH[lm - 1] - } - - // 将计算出来的农历年份转换为天干地支年 - ly = getTianGan(ly) + getDiZhi(ly) - - if (ld < 1) { - return ' '.repeat(4) - } - - if (ld === 1) { - return lm + '月' - } - if (ld < 11) { - return LUNAR_DAY[0] + LUNAR_DAY[ld] - } - - if (ld < 20) { - return LUNAR_DAY[10] + LUNAR_DAY[ld - 10] - } - - if (ld === 20) { - return LUNAR_DAY[2] + LUNAR_DAY[10] - } - - if (ld === 30) { - return LUNAR_DAY[3] + LUNAR_DAY[10] - } - - return LUNAR_DAY[20] + LUNAR_DAY[ld - 20] -} - -// 计算农历年是否有闰月,参数为存储农历年的16进制 -// 农历年份信息用16进制存储,其中16进制的最后1位可以用于判断是否有闰月 -function hasLeapMonth(ly) { - // 获取16进制的最后1位,需要用到&与运算符 - if (ly & 0xf) { - return ly & 0xf - } else { - return false - } -} - -// 如果有闰月,计算农历闰月天数,参数为存储农历年的16进制 -// 农历年份信息用16进制存储,其中16进制的第1位(0x除外)可以用于表示闰月是大月还是小月 -function leapMonthDays(ly) { - if (hasLeapMonth(ly)) { - // 获取16进制的第1位(0x除外) - return ly & 0xf0000 ? 30 : 29 - } else { - return 0 - } -} - -// 计算农历一年的总天数,参数为存储农历年的16进制 -// 农历年份信息用16进制存储,其中16进制的第2-4位(0x除外)可以用于表示正常月是大月还是小月 -function lunarYearDays(ly) { - let totalDays = 0 - - // 获取正常月的天数,并累加 - // 获取16进制的第2-4位,需要用到>>移位运算符 - for (let i = 0x8000; i > 0x8; i >>= 1) { - let monthDays = ly & i ? 30 : 29 - totalDays += monthDays - } - // 如果有闰月,需要把闰月的天数加上 - if (hasLeapMonth(ly)) { - totalDays += leapMonthDays(ly) - } - - return totalDays -} - -// 获取农历每个月的天数 -// 参数需传入16进制数值 -function lunarYearMonths(ly) { - let monthArr = [] - - // 获取正常月的天数,并添加到monthArr数组中 - // 获取16进制的第2-4位,需要用到>>移位运算符 - for (let i = 0x8000; i > 0x8; i >>= 1) { - monthArr.push(ly & i ? 30 : 29) - } - // 如果有闰月,需要把闰月的天数加上 - if (hasLeapMonth(ly)) { - monthArr.splice(hasLeapMonth(ly), 0, leapMonthDays(ly)) - } - - return monthArr -} - -// 将农历年转换为天干,参数为农历年 -function getTianGan(ly) { - let tianGanKey = (ly - 3) % 10 - if (tianGanKey === 0) tianGanKey = 10 - return HEAVENLY_STEMS[tianGanKey - 1] -} - -// 将农历年转换为地支,参数为农历年 -function getDiZhi(ly) { - let diZhiKey = (ly - 3) % 12 - if (diZhiKey === 0) diZhiKey = 12 - return EARTHLY_BRANCHES[diZhiKey - 1] -} diff --git a/package.json b/package.json index 39e3f2e..9d55728 100644 --- a/package.json +++ b/package.json @@ -1,15 +1,14 @@ { "name": "bash-calendar", "description": "终端版万年历", - "version": "0.0.1", - "type": "module", + "version": "1.0.0", "author": "yutent ", "bin": { "calendar": "index.js", "cal": "index.js" }, - "dependencies": { - "chalk": "^4.0.0" + "engines": { + "node": ">=10.0.0" }, "repository": { "type": "git", diff --git a/calendar.js b/src/calendar.js similarity index 86% rename from calendar.js rename to src/calendar.js index 749a115..72e3cf3 100644 --- a/calendar.js +++ b/src/calendar.js @@ -5,7 +5,7 @@ */ import chalk from 'chalk' -import { sloar2lunar } from './lunar.js' +import { solar2lunar, getHSEBYear } from './lunar/index.js' const CAL_HEAD = ['日', '一', '二', '三', '四', '五', '六'].map((s, i) => { s = '星期' + s @@ -63,13 +63,15 @@ export function getCalendarTable(year, month) { } if (i > 0) { let week = getFirstDay(year, month, i) + let lunar = solar2lunar(year, month, i) tmp.weekend = week === 0 || week === 6 tmp.picked = !!isPicked({ year, month, day: i }, today) - tmp.lunar = sloar2lunar(year, month, i) + tmp.lunar = lunar.short + tmp.highlight = !!lunar.festival } else { // 从上个月中补齐第1周 tmp.grey = 1 - tmp.lunar = sloar2lunar(year, month - 1, lnums - -i) + tmp.lunar = solar2lunar(year, month - 1, lnums + i).short } list.push(tmp) } @@ -81,7 +83,7 @@ export function getCalendarTable(year, month) { for (let day = 1; day <= nd; day++) { list.push({ day: (day + '').padStart(2, '0'), - lunar: sloar2lunar(year, month + 1, day), + lunar: solar2lunar(year, month + 1, day).short, grey: 1 }) } @@ -90,7 +92,7 @@ export function getCalendarTable(year, month) { // 画表头 function drawThead(year, month) { - var dateStr = `${year}年${month + 1}月` + var dateStr = `${year}年${month + 1}月${' '.repeat(10)}${getHSEBYear(year, month)}` dateStr = chalk.grey('| ') + chalk.cyan(dateStr) + ' '.repeat(75 - dateStr.length - 2) + chalk.grey('|') @@ -155,9 +157,12 @@ function drawTbody(year, month) { if (tmp.picked) { tr += chalk.bgRed.white.bold(' '.repeat(3) + tmp.lunar + ' '.repeat(3)) + VLINE } else { - tmp.lunar = chalk.grey(tmp.lunar) - - tr += ' '.repeat(3) + tmp.lunar + ' '.repeat(3) + VLINE + let pad = 5 + if (tmp.lunar) { + pad = (10 - tmp.lunar.length * 2) / 2 + tmp.lunar = tmp.highlight ? chalk.cyan.dim(tmp.lunar) : chalk.grey(tmp.lunar) + } + tr += ' '.repeat(pad) + tmp.lunar + ' '.repeat(pad) + VLINE } break } diff --git a/src/index.js b/src/index.js new file mode 100644 index 0000000..fccfba6 --- /dev/null +++ b/src/index.js @@ -0,0 +1,129 @@ +#!/usr/bin/env node + +/** + * {终端版万年历} + * @author yutent + * @date 2021/11/26 17:20:02 + */ + +import chalk from 'chalk' +import { getThisYearMonth, drawCalendar } from './calendar.js' + +var version = process.env.APP_VERSION +var argvs = process.argv.slice(2) +var action = argvs.shift() +var [year, month] = getThisYearMonth() + +function drawOneYear(y) { + for (let i = 0; i < 12; i++) { + drawCalendar(y, i) + } +} + +function print(...args) { + args[0] = args[0].padEnd(20, ' ') + if (args.length > 1) { + args.splice(1, 0, ' - ') + } + console.log.apply(null, args) +} + +function print_help() { + print('='.repeat(64)) + print(`终端版万年历 v${version}, 作者: 宇天`) + print('='.repeat(64)) + print('用法: cal [command] args...') + print('Commands:') + print(' -y {year}', '打印指定年份的日历') + print(' -m', '打印指定月份的日历') + print(' -h', '查看帮助文档') + print(' -v', '查看程序的版本\n') + print('示例: ') + print(' cal ' + chalk.grey('# 不带参数打印当前年月')) + print(' cal -y ' + chalk.grey('# -y 不接参数, 打印当前年的所有月份')) + print(' cal -y 2000 ' + chalk.grey('# 打印指定年份的所有月份')) + print(' cal -y 2021 5 ' + chalk.grey('# 打印指定年份, 指定月份')) + print(' cal -y 2000 -m 3 ' + chalk.grey('# 同上')) + print(' cal -m 5 ' + chalk.grey('# 打印当前年份的 指定月份')) + process.exit() +} + +switch (action) { + case '-y': + switch (argvs.length) { + // 再无其他参数, 由打印当前年份所有的日历 + case 0: + drawOneYear(year) + break + + // 有1~2个参数, cal -y 2020 2, cal -y 2020 5 + case 1: + case 2: + year = +argvs.shift() + month = +argvs.shift() + + if (year === year) { + if (month < 13 && month > 0) { + drawCalendar(year, month - 1) + } else { + drawOneYear(year) + } + } else { + console.log('-y 参数异常') + } + break + + // 3个参数 cal -y 2020 -m 1 + case 3: + action = argvs.shift() + month = +argvs.shift() + if (action === '-m' && month < 13 && month > 0) { + drawCalendar(year, month - 1) + } else { + console.log('-m 参数异常') + } + break + default: + console.log('-y 参数异常') + break + } + + break + + case '-m': + month = +argvs.shift() + if (month < 13 && month > 0) { + drawCalendar(year, month - 1) + } else { + console.log('-m 参数异常') + } + break + + case '-v': + print(version) + break + + case '-h': + print_help() + break + + default: + if (action) { + year = +action + month = +argvs.shift() + if (year === year) { + if (month < 13 && month > 0) { + drawCalendar(year, month - 1) + } else { + drawOneYear(year) + } + } else { + console.log('参数异常') + } + } else { + drawCalendar(year, month) + } + + break +} +process.exit() diff --git a/src/lunar/config.js b/src/lunar/config.js new file mode 100644 index 0000000..d64d091 --- /dev/null +++ b/src/lunar/config.js @@ -0,0 +1,303 @@ +// 农历1900-2100年查询表 +export const LUNAR_YEARS = [ + 0x04bd8, // 1900 + 0x04ae0, + 0x0a570, + 0x054d5, + 0x0d260, + 0x0d950, + 0x16554, + 0x056a0, + 0x09ad0, + 0x055d2, //1909 + 0x04ae0, + 0x0a5b6, + 0x0a4d0, + 0x0d250, + 0x1d255, + 0x0b540, + 0x0d6a0, + 0x0ada2, + 0x095b0, + 0x14977, //1919 + 0x04970, + 0x0a4b0, + 0x0b4b5, + 0x06a50, + 0x06d40, + 0x1ab54, + 0x02b60, + 0x09570, + 0x052f2, + 0x04970, //1929 + 0x06566, + 0x0d4a0, + 0x0ea50, + 0x16a95, + 0x05ad0, + 0x02b60, + 0x186e3, + 0x092e0, + 0x1c8d7, + 0x0c950, //1939 + 0x0d4a0, + 0x1d8a6, + 0x0b550, + 0x056a0, + 0x1a5b4, + 0x025d0, + 0x092d0, + 0x0d2b2, + 0x0a950, + 0x0b557, //1949 + 0x06ca0, + 0x0b550, + 0x15355, + 0x04da0, + 0x0a5b0, + 0x14573, + 0x052b0, + 0x0a9a8, + 0x0e950, + 0x06aa0, //1959 + 0x0aea6, + 0x0ab50, + 0x04b60, + 0x0aae4, + 0x0a570, + 0x05260, + 0x0f263, + 0x0d950, + 0x05b57, + 0x056a0, //1969 + 0x096d0, + 0x04dd5, + 0x04ad0, + 0x0a4d0, + 0x0d4d4, + 0x0d250, + 0x0d558, + 0x0b540, + 0x0b6a0, + 0x195a6, //1979 + 0x095b0, + 0x049b0, + 0x0a974, + 0x0a4b0, + 0x0b27a, + 0x06a50, + 0x06d40, + 0x0af46, + 0x0ab60, + 0x09570, //1989 + 0x04af5, + 0x04970, + 0x064b0, + 0x074a3, + 0x0ea50, + 0x06b58, + 0x05ac0, + 0x0ab60, + 0x096d5, + 0x092e0, //1999 + 0x0c960, + 0x0d954, + 0x0d4a0, + 0x0da50, + 0x07552, + 0x056a0, + 0x0abb7, + 0x025d0, + 0x092d0, + 0x0cab5, //2009 + 0x0a950, + 0x0b4a0, + 0x0baa4, + 0x0ad50, + 0x055d9, + 0x04ba0, + 0x0a5b0, + 0x15176, + 0x052b0, + 0x0a930, //2019 + 0x07954, + 0x06aa0, + 0x0ad50, + 0x05b52, + 0x04b60, + 0x0a6e6, + 0x0a4e0, + 0x0d260, + 0x0ea65, + 0x0d530, //2029 + 0x05aa0, + 0x076a3, + 0x096d0, + 0x04afb, + 0x04ad0, + 0x0a4d0, + 0x1d0b6, + 0x0d250, + 0x0d520, + 0x0dd45, //2039 + 0x0b5a0, + 0x056d0, + 0x055b2, + 0x049b0, + 0x0a577, + 0x0a4b0, + 0x0aa50, + 0x1b255, + 0x06d20, + 0x0ada0, //2049 + 0x14b63, + 0x09370, + 0x049f8, + 0x04970, + 0x064b0, + 0x168a6, + 0x0ea50, + 0x06b20, + 0x1a6c4, + 0x0aae0, //2059 + 0x092e0, + 0x0d2e3, + 0x0c960, + 0x0d557, + 0x0d4a0, + 0x0da50, + 0x05d55, + 0x056a0, + 0x0a6d0, + 0x055d4, //2069 + 0x052d0, + 0x0a9b8, + 0x0a950, + 0x0b4a0, + 0x0b6a6, + 0x0ad50, + 0x055a0, + 0x0aba4, + 0x0a5b0, + 0x052b0, //2079 + 0x0b273, + 0x06930, + 0x07337, + 0x06aa0, + 0x0ad50, + 0x14b55, + 0x04b60, + 0x0a570, + 0x054e4, + 0x0d160, //2089 + 0x0e968, + 0x0d520, + 0x0daa0, + 0x16aa6, + 0x056d0, + 0x04ae0, + 0x0a9d4, + 0x0a2d0, + 0x0d150, + 0x0f252, //2099 + 0x0d520 // 2100 +] + +export const LUNAR_MONTH = ['正', '二', '三', '四', '五', '六', '七', '八', '九', '十', '冬', '腊'] +export const LUNAR_DAY = { + 0: '初', + 1: '一', + 2: '二', + 3: '三', + 4: '四', + 5: '五', + 6: '六', + 7: '七', + 8: '八', + 9: '九', + 10: '十', + 20: '廿' +} +// 生肖、天干、地支, 节气 +export const ZODIAC = ['鼠', '牛', '虎', '兔', '龙', '蛇', '马', '羊', '猴', '鸡', '狗', '猪'] +export const HEAVENLY_STEMS = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸'] +export const EARTHLY_BRANCHES = [ + '子', + '丑', + '寅', + '卯', + '辰', + '巳', + '午', + '未', + '申', + '酉', + '戌', + '亥' +] + +// 24节气表和C值 +export const SOLAR_TERMS = [ + '小寒', + '大寒', + '立春', + '雨水', + '惊蛰', + '春分', + '清明', + '谷雨', + '立夏', + '小满', + '芒种', + '夏至', + '小暑', + '大暑', + '立秋', + '处暑', + '白露', + '秋分', + '寒露', + '霜降', + '立冬', + '小雪', + '大雪', + '冬至' +] + +// 农历节日(仅为常规节日, 地方节日、教派节日未收录) +export const FESTIVALS = { + '1.1': '春节', + '1.15': '元宵节', + '2.2': '龙抬头', + '3.3': '上巳节', + '5.5': '端午节', + '7.7': '七夕节', + '7.15': '中元节', + '8.15': '中秋节', + '9.9': '重阳节', + '10.1': '寒衣节', + '10.15': '下元节', + '12.8': '腊八节', + '12.23': '北方小年', + '12.24': '南方小年', + '12.30': '除夕' // 不一定有年三十, 计算时会修正 +} + +// 公历节日(不全, 仅国内常用的) +export const SOLAR_FESTIVALS = { + '1.1': '元旦节', + '2.14': '情人节', + '3.8': '妇女节', + '3.12': '植树节', + '4.1': '愚人节', + '5.1': '劳动节', + '5.4': '青年节', + '5.12': '护士节', + '6.1': '儿童节', + '7.1': '建党节', + '8.1': '建军节', + '9.10': '教师节', + '10.1': '国庆节', + '12.24': '平安夜', + '12.25': '圣诞节' +} diff --git a/src/lunar/index.js b/src/lunar/index.js new file mode 100644 index 0000000..0dd6cd4 --- /dev/null +++ b/src/lunar/index.js @@ -0,0 +1,175 @@ +/** + * {农历转换算法} + * @author yutent + * @date 2021/11/30 13:31:34 + */ + +import { + LUNAR_YEARS, + LUNAR_MONTH, + LUNAR_DAY, + HEAVENLY_STEMS, + EARTHLY_BRANCHES, + ZODIAC, + FESTIVALS, + SOLAR_FESTIVALS +} from './config.js' + +/** + * 公历转农历函数 + * 传入公历{年月日}, 返回农历信息, 范围支持 1901/01/01 ~ 2100/12/31 + */ +export function solar2lunar(year = 1901, month = 0, day = 1) { + var baseDate = Date.UTC(1900, 0, 31) // 公历基准(1900年春节) + var timestamp = Date.UTC(year, month, day) // 传入日期的时间戳 + var offset = (timestamp - baseDate) / (24 * 60 * 60 * 1000) + 1 // 计算与的相差天数, 有1天的修正 + var months, leap + var result = { short: '' } + + if (year < 1901 || year > 2100) { + return result + } + + // 计算给出的公历对应的农历年份 + for (let y = 1900; y <= 2100; y++) { + let days = getLunarYearDays(y) + offset -= days + + // 确定之后, 得出农历天数(距离正月初一) + if (offset <= 0) { + result.year = y + offset += days + break + } + } + + // 获取当年的农历月份天数 + months = getLunarMonthsDays(result.year) + leap = getLeapMonth(result.year) + + // 计算农历月份 + for (let m = 0; m < months.length; m++) { + offset -= months[m] // 一个一个月的天数相减,直到小于0 + if (offset <= 0) { + result.month = m + result.day = offset + months[m] // 补回天数 + + // 有闰月, 且当前月份大于等于闰月, 那得到的月份要减1 + if (leap > 0 && m >= leap) { + result.leap = m === leap + result.month -= 1 + } + break + } + } + + // 公历节日 + result.festival = SOLAR_FESTIVALS[`${month + 1}.${day}`] + + // 非闰月才有农历节日 + if (!result.leap) { + // 修正没有年三十的除夕 + if (result.month === 11 && result.day === months.pop()) { + result.festival = FESTIVALS['12.30'] + } else { + result.festival = FESTIVALS[`${result.month + 1}.${result.day}`] || result.festival + } + } + + result.yearCN = getHSEBYear(result.year) + result.monthCN = (result.leap > 0 ? '闰' : '') + LUNAR_MONTH[result.month] + '月' + + if (result.day < 11) { + result.dayCN = LUNAR_DAY[0] + LUNAR_DAY[result.day] + } else if (result.day < 20) { + result.dayCN = LUNAR_DAY[10] + LUNAR_DAY[result.day - 10] + } else if (result.day === 20) { + result.dayCN = LUNAR_DAY[2] + LUNAR_DAY[10] + } else if (result.day < 30) { + result.dayCN = LUNAR_DAY[20] + LUNAR_DAY[result.day - 20] + } else if (result.day === 30) { + result.dayCN = LUNAR_DAY[3] + LUNAR_DAY[10] + } + + result.short = result.festival + ? result.festival + : result.day === 1 + ? result.monthCN + : result.dayCN + + return result +} + +/** + * 获取指定年份的农历天数 + * @param year {Number} 1901 ~ 2100 + * @return {Number} + */ +function getLunarYearDays(year) { + var months = getLunarMonthsDays(year) + return months.reduce((sum, n) => (sum += n), 0) +} + +/** + * 判断指定年份是否有闰月 + * 16进制最后一位表示闰月的月份 (0-12), 0表示无闰月 + * @param year {Number} 1901 - 2100 + * @return {Number} 0-12 + */ +function getLeapMonth(year) { + var hexYear = LUNAR_YEARS[year - 1900] // 转16进制年份 + return hexYear & 0xf +} + +/** + * 获取闰月的天数 + * 16进制年份的第1位表示闰月是大小月 + * @param year {Number} 1901 - 2100 + * @return {Number} + */ +function getLeapMonthDays(year) { + var hexYear = LUNAR_YEARS[year - 1900] // 转16进制年份 + var month = getLeapMonth(year) + if (month > 0) { + return hexYear & 0xf0000 ? 30 : 29 + } + return 0 +} + +/** + * 获取指定年份的所有月份天数 + * @param year {Number} 1901 - 2100 + * @return {Array} + */ +function getLunarMonthsDays(year) { + var hexYear = LUNAR_YEARS[year - 1900] // 转16进制年份 + var leap = getLeapMonth(year) + var leapDays = getLeapMonthDays(year) + var months = [] + + // 16进制年份的2-4位用于表示大小月 + for (let i = 0x8000; i > 0x8; i >>= 1) { + months.push(hexYear & i ? 30 : 29) + } + + if (leap > 0) { + months.splice(leap, 0, leapDays) + } + + return months +} + +/** + * 获取指定年份的天干地支生肖 + * @param year {Number} 1901 - 2100 + * @return {String} + */ +export function getHSEBYear(year) { + var hy = (year - 3) % 10 + var eb = (year - 3) % 12 + + hy = hy === 0 ? 10 : hy + eb = eb === 0 ? 12 : eb + + return HEAVENLY_STEMS[hy - 1] + EARTHLY_BRANCHES[eb - 1] + ZODIAC[(year - 4) % 12] + '年' +}