LunarArray logic
基準[year, monthIndex, day]とbitwise dataから旧暦配列[year, month, day, days]を計算。define Date.prototype
01. declare daylet d=(Date.UTC(this.getUTCFullYear(),this.getUTCMonth(),this.getUTCDate())-Date.UTC(v.year,v.monthIndex,v.day))/864e502. start loop(year)
if(-1<d)for(let y=0;y<v.data.length;y++){03. declare leap, monthLength
const l=v.data[y]>>>13,mL=l?13:1204. start loop(month)
for(let m=0;m<mL;m++){05. declare days
const ds=29+(1&v.data[y]>>>m)06. return
if(d<ds)return[y+v.year,m+(!l||l>m?1:l===m?.5:0),1+d,ds]07. sub day
d-=ds08. end loop(month)
}09. end loop(year)
}10. throw
throw Error()