chinese-days
Version:
中国节假日、调休日、工作日、24节气查询,农历阳历互转,支持 TS、CommonJS、UMD 模块化使用,提供 ics 日历格式,可供 Google Calendar、Apple Calendar、Microsoft Outlook 等客户端订阅。
2 lines (1 loc) • 20.3 kB
JavaScript
(function(l,y){typeof exports=="object"&&typeof module<"u"?y(exports):typeof define=="function"&&define.amd?define(["exports"],y):(l=typeof globalThis<"u"?globalThis:l||self,y(l.chineseDays={}))})(this,function(l){"use strict";var nt=Object.defineProperty;var it=(l,y,h)=>y in l?nt(l,y,{enumerable:!0,configurable:!0,writable:!0,value:h}):l[y]=h;var D=(l,y,h)=>it(l,typeof y!="symbol"?y+"":y,h);const _=class _{constructor(t){D(this,"_date");t instanceof _?this._date=new Date(t.toDate()):t instanceof Date?this._date=new Date(t):typeof t=="string"||typeof t=="number"?(this._date=new Date(t),typeof t=="string"&&isNaN(this._date.getTime())&&(this._date=new Date(t.replace(/-/g,"/")))):this._date=new Date}toDate(){return this._date}isValid(){return!isNaN(this._date.getTime())}diff(t,e="day"){const a=new _(t).toDate(),i=this._date.getTime()-a.getTime();switch(e){case"year":return this._date.getFullYear()-a.getFullYear();case"month":return(this._date.getFullYear()-a.getFullYear())*12+(this._date.getMonth()-a.getMonth());case"day":default:return Math.floor(i/(1e3*60*60*24))}}startOf(t){const e=new Date(this._date);switch(t){case"year":e.setMonth(0),e.setDate(1),e.setHours(0,0,0,0);break;case"month":e.setDate(1),e.setHours(0,0,0,0);break;case"day":e.setHours(0,0,0,0);break}return new _(e)}endOf(t){const e=new Date(this._date);switch(t){case"year":e.setMonth(11),e.setDate(31),e.setHours(23,59,59,999);break;case"month":e.setDate(new Date(e.getFullYear(),e.getMonth()+1,0).getDate()),e.setHours(23,59,59,999);break;case"day":e.setHours(23,59,59,999);break}return new _(e)}add(t,e){const a=new Date(this._date);switch(e){case"year":a.setFullYear(a.getFullYear()+t);break;case"month":a.setMonth(a.getMonth()+t);break;case"day":a.setDate(a.getDate()+t);break}return new _(a)}subtract(t,e){return this.add(-t,e)}format(t){const e={YYYY:this._date.getFullYear(),MM:(this._date.getMonth()+1).toString().padStart(2,"0"),DD:this._date.getDate().toString().padStart(2,"0"),HH:this._date.getHours().toString().padStart(2,"0"),mm:this._date.getMinutes().toString().padStart(2,"0"),ss:this._date.getSeconds().toString().padStart(2,"0"),dddd:_.daysOfWeek[this._date.getDay()]};return t.replace(/YYYY|MM|DD|HH|mm|ss|dddd/g,a=>e[a].toString())}year(t){if(t===void 0)return this._date.getFullYear();const e=new Date(this._date);return e.setFullYear(t),new _(e)}month(t){if(t===void 0)return this._date.getMonth();const e=new Date(this._date);return e.setMonth(t),new _(e)}date(t){if(t===void 0)return this._date.getDate();const e=new Date(this._date);return e.setDate(t),new _(e)}day(t){if(t===void 0)return this._date.getDay();{const e=this._date.getDay(),a=t-e,i=new Date(this._date);return i.setDate(this._date.getDate()+a),new _(i)}}isBefore(t){const e=new _(t).toDate();return this._date.getTime()<e.getTime()}isAfter(t){const e=new _(t).toDate();return this._date.getTime()>e.getTime()}isSame(t,e="day"){const a=new _(t).toDate();switch(e){case"year":return this._date.getFullYear()===a.getFullYear();case"month":return this._date.getFullYear()===a.getFullYear()&&this._date.getMonth()===a.getMonth();case"day":default:return this._date.getFullYear()===a.getFullYear()&&this._date.getMonth()===a.getMonth()&&this._date.getDate()===a.getDate()}}isBetween(t,e,a){const i=new _(t).startOf(a).toDate(),s=new _(e).endOf(a).toDate(),o=this.toDate();return o>=i&&o<=s}};D(_,"daysOfWeek",["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]);let y=_;const h=r=>new y(r),u=r=>h(r).startOf("day"),m=(r,t)=>{r=u(r),t=u(t);const e=t.diff(r,"day");return Array.from({length:e+1},(a,i)=>r.add(i,"day"))},P={1999:{"New Year's Day,元旦":1,"Spring Festival,春节":3,"Labour Day,劳动节":3,"National Day,国庆节":3},2008:{"Tomb-sweeping Day,清明":1,"Labour Day,劳动节":1,"Dragon Boat Festival,端午":1,"Mid-autumn Festival,中秋":1},2015:{"Anti-Fascist 70th Day,中国人民抗日战争暨世界反法西斯战争胜利70周年纪念日":1},2025:{"Spring Festival,春节":4,"Labour Day,劳动节":2}};class x{constructor(){D(this,"dayDetails",{});D(this,"holidays",{});D(this,"workdays",{});D(this,"inLieuDays",{})}y(t){return this.dayDetails.year=t,this}getHolidayDays(t,e){let a=0;for(const[i,s]of Object.entries(P)){if(parseInt(i)>t)break;s[e]!==void 0&&(a=s[e])}return a}mark(t){return this.dayDetails.holiday=t,this}save(t,e,a){if(!this.dayDetails.year)throw new Error("should set year before saving holiday");if(!this.dayDetails.holiday)throw new Error("should set holiday before saving holiday");this.dayDetails.month=t,this.dayDetails.day=e,this.dayDetails.dayType=a;const i=h(`${this.dayDetails.year}-${t}-${e}`).format("YYYY-MM-DD"),s=this.getHolidayDays(this.dayDetails.year,this.dayDetails.holiday),o=`${this.dayDetails.holiday},${s}`;return a===2?this.holidays[i]=o:a===1?this.workdays[i]=o:a===3&&(this.inLieuDays[i]=o),this}to(t,e){if(!this.dayDetails.holiday||!this.dayDetails.year||!this.dayDetails.month||!this.dayDetails.day)throw new Error("should set year/month/day before saving holiday range");const a=h(`${this.dayDetails.year}-${this.dayDetails.month}-${this.dayDetails.day}`),i=h(`${this.dayDetails.year}-${t}-${e}`);if(i.isBefore(a)||i.isSame(a))throw new Error("end date should be after start date");const s=this.getHolidayDays(this.dayDetails.year,this.dayDetails.holiday),o=`${this.dayDetails.holiday},${s}`,d=i.diff(a,"day");for(let n=1;n<=d;n++){const w=a.add(n,"day").format("YYYY-MM-DD");this.dayDetails.dayType===2?this.holidays[w]=o:this.dayDetails.dayType===1?this.workdays[w]=o:this.dayDetails.dayType===3&&(this.inLieuDays[w]=o)}return this}w(t,e){return this.save(t,e,1)}r(t,e){return this.save(t,e,2)}i(t,e){return this.save(t,e,3)}ny(){return this.mark("New Year's Day,元旦")}s(){return this.mark("Spring Festival,春节")}t(){return this.mark("Tomb-sweeping Day,清明")}l(){return this.mark("Labour Day,劳动节")}d(){return this.mark("Dragon Boat Festival,端午")}n(){return this.mark("National Day,国庆节")}m(){return this.mark("Mid-autumn Festival,中秋")}a(){return this.mark("Anti-Fascist 70th Day,中国人民抗日战争暨世界反法西斯战争胜利70周年纪念日")}}const z=()=>{const r=new x;return r.y(2025).ny().r(1,1).s().r(1,28).to(2,4).w(1,26).w(2,8).i(2,3).i(2,4).t().r(4,4).to(4,6).l().r(5,1).to(5,5).w(4,27).i(5,5).d().r(5,31).to(6,2).n().r(10,1).to(10,8).w(9,28).w(10,11).i(10,7).i(10,8).m().r(10,6),r.y(2024).ny().r(1,1).s().r(2,10).to(2,17).w(2,4).w(2,18).i(2,15).to(2,16).t().r(4,4).to(4,6).w(4,7).i(4,5).l().r(5,1).to(5,5).w(4,28).w(5,11).i(5,2).to(5,3).d().r(6,10).m().r(9,15).to(9,17).w(9,14).i(9,16).n().r(10,1).to(10,7).w(9,29).w(10,12).i(10,4).i(10,7),r.y(2023).ny().r(1,1).to(1,2).s().r(1,21).to(1,27).w(1,28).to(1,29).i(1,26).to(1,27).t().r(4,5).l().r(4,29).to(5,3).w(4,23).w(5,6).i(5,2).to(5,3).d().r(6,22).to(6,24).w(6,25).i(6,23).m().r(9,29).n().r(9,30).to(10,6).w(10,7).to(10,8).i(10,5).to(10,6),r.y(2022).ny().r(1,1).to(1,3).s().r(1,31).to(2,6).w(1,29).w(1,30).i(2,3).to(2,4).t().r(4,3).to(4,5).w(4,2).i(4,4).l().r(4,30).to(5,4).w(4,24).w(5,7).i(5,3).to(5,4).d().r(6,3).to(6,5).m().r(9,10).to(9,12).n().r(10,1).to(10,7).w(10,8).w(10,9).i(10,6).to(10,7).ny().r(12,31),r.y(2021).ny().r(1,1).to(1,3).s().r(2,11).to(2,17).w(2,7).w(2,20).i(2,16).to(2,17).t().r(4,3).to(4,5).l().r(5,1).to(5,5).w(4,25).w(5,8).i(5,4).to(5,5).d().r(6,12).to(6,14).m().r(9,19).to(9,21).w(9,18).i(9,20).n().r(10,1).to(10,7).w(9,26).w(10,9).i(10,6).to(10,7),r.y(2020).ny().r(1,1).s().r(1,24).to(2,2).w(1,19).i(1,29).t().r(4,4).to(4,6).l().r(5,1).to(5,5).w(4,26).w(5,9).i(5,4).to(5,5).d().r(6,25).to(6,27).w(6,28).i(6,26).n().r(10,1).to(10,8).w(9,27).w(10,10).i(10,7).to(10,8),r.y(2019).ny().r(1,1).s().r(2,4).to(2,10).w(2,2).to(2,3).i(2,4).i(2,8).t().r(4,5).to(4,7).l().r(5,1).to(5,4).w(4,28).w(5,5).i(5,2).i(5,3).d().r(6,7).to(6,9).m().r(9,13).to(9,15).n().r(10,1).to(10,7).w(9,29).w(10,12).i(10,4).i(10,7),r.y(2018).ny().r(1,1).s().r(2,15).to(2,21).w(2,11).w(2,24).i(2,19).to(2,21).t().r(4,5).to(4,7).w(4,8).i(4,6).l().r(4,29).to(5,1).w(4,28).i(4,30).d().r(6,18).n().r(10,1).to(10,7).w(9,29).to(9,30).i(10,4).to(10,5).m().r(9,24).ny().r(12,30).to(12,31).w(12,29).i(12,31),r.y(2017).ny().r(1,1).to(1,2).s().r(1,27).to(2,2).w(1,22).w(2,4).i(2,1).to(2,2).t().r(4,2).to(4,4).w(4,1).i(4,3).l().r(5,1).d().r(5,28).to(5,30).w(5,27).i(5,29).n().r(10,1).to(10,8).w(9,30).i(10,6).m().r(10,4),r.y(2016).ny().r(1,1).s().r(2,7).to(2,13).w(2,6).w(2,14).i(2,11).to(2,12).t().r(4,4).l().r(5,1).to(5,2).d().r(6,9).to(6,11).w(6,12).i(6,10).m().r(9,15).to(9,17).w(9,18).i(9,16).n().r(10,1).to(10,7).w(10,8).to(10,9).i(10,6).to(10,7),r.y(2015).ny().r(1,1).to(1,3).w(1,4).i(1,2).s().r(2,18).to(2,24).w(2,15).w(2,28).i(2,23).to(2,24).t().r(4,5).to(4,6).l().r(5,1).d().r(6,20).r(6,22).m().r(9,27).n().r(10,1).to(10,7).w(10,10).i(10,7).a().r(9,3).to(9,4).w(9,6).i(9,4),r.y(2014).ny().r(1,1).s().r(1,31).to(2,6).w(1,26).w(2,8).i(2,5).to(2,6).t().r(4,5).to(4,7).l().r(5,1).to(5,3).w(5,4).i(5,2).d().r(6,2).m().r(9,8).n().r(10,1).to(10,7).w(9,28).w(10,11).i(10,6).to(10,7),r.y(2013).ny().r(1,1).to(1,3).w(1,5).to(1,6).i(1,2).to(1,3).s().r(2,9).to(2,15).w(2,16).to(2,17).i(2,14).to(2,15).t().r(4,4).to(4,6).w(4,7).i(4,5).l().r(4,29).to(5,1).w(4,27).to(4,28).i(4,29).to(4,30).d().r(6,10).to(6,12).w(6,8).to(6,9).i(6,10).to(6,11).m().r(9,19).to(9,21).w(9,22).i(9,20).n().r(10,1).to(10,7).w(9,29).w(10,12).i(10,4).i(10,7),r.y(2012).ny().r(1,1).to(1,3).i(1,3).s().r(1,22).to(1,28).w(1,21).w(1,29).i(1,26).to(1,27).t().r(4,2).to(4,4).w(3,31).w(4,1).i(4,2).to(4,3).l().r(4,29).to(5,1).w(4,28).i(4,30).d().r(6,22).r(6,24).m().r(9,30).n().r(10,1).to(10,7).w(9,29).i(10,5),r.y(2011).ny().r(1,1).to(1,3).s().r(2,2).to(2,8).w(1,30).w(2,12).i(2,7).to(2,8).t().r(4,3).to(4,5).w(4,2).i(4,4).l().r(4,30).to(5,2).d().r(6,4).r(6,6).m().r(9,10).to(9,12).n().r(10,1).to(10,7).w(10,8).to(10,9).i(10,6).to(10,7).ny().w(12,31),r.y(2010).ny().r(1,1).to(1,3).s().r(2,13).to(2,19).w(2,20).to(2,21).i(2,18).to(2,19).t().r(4,3).to(4,5).l().r(5,1).to(5,3).d().r(6,14).to(6,16).w(6,12).to(6,13).i(6,14).to(6,15).m().r(9,22).to(9,24).w(9,19).w(9,25).i(9,23).to(9,24).n().r(10,1).to(10,7).w(9,26).w(10,9).i(10,6).to(10,7),r.y(2009).ny().r(1,1).to(1,3).w(1,4).i(1,2).s().r(1,25).to(1,31).w(1,24).w(2,1).i(1,29).to(1,30).t().r(4,4).to(4,6).l().r(5,1).to(5,3).d().r(5,28).to(5,30).w(5,31).i(5,29).n().r(10,1).to(10,8).w(9,27).w(10,10).i(10,7).to(10,8).m().r(10,3),r.y(2008).ny().r(1,1).s().r(2,6).to(2,12).w(2,2).to(2,3).i(2,11).to(2,12).t().r(4,4).to(4,6).l().r(5,1).to(5,3).w(5,4).i(5,2).d().r(6,7).to(6,9).m().r(9,13).to(9,15).n().r(9,29).to(10,5).w(9,27).to(9,28).i(9,29).to(9,30),r.y(2007).ny().r(1,1).to(1,3).i(1,2).to(1,3).s().r(2,18).to(2,24).w(2,17).w(2,25).i(2,22).to(2,23).l().r(5,1).to(5,7).w(4,28).to(4,29).i(5,4).i(5,7).n().r(10,1).to(10,7).w(9,29).to(9,30).i(10,4).to(10,5).ny().r(12,30).to(12,31).w(12,29).i(12,31),r.y(2006).ny().r(1,1).to(1,3).s().r(1,29).to(2,4).w(1,28).w(2,5).i(2,2).to(2,3).l().r(5,1).to(5,7).w(4,29).to(4,30).i(5,4).to(5,5).n().r(10,1).to(10,7).w(9,30).w(10,8).i(10,5).to(10,6).ny().w(12,30).to(12,31),r.y(2005).ny().r(1,1).to(1,3).s().r(2,9).to(2,15).w(2,5).to(2,6).i(2,14).to(2,15).l().r(5,1).to(5,7).w(4,30).w(5,8).i(5,5).to(5,6).n().r(10,1).to(10,7).w(10,8).to(10,9).i(10,6).to(10,7),r.y(2004).ny().r(1,1).s().r(1,22).to(1,28).w(1,17).to(1,18).i(1,27).to(1,28).l().r(5,1).to(5,7).w(5,8).to(5,9).i(5,6).to(5,7).n().r(10,1).to(10,7).w(10,9).to(10,10).i(10,6).to(10,7),{holidays:r.holidays,workdays:r.workdays,inLieuDays:r.inLieuDays}},{holidays:Y,workdays:S,inLieuDays:V}=z(),c=(...r)=>{if(r.length!==1)return r.map(e=>c(e));const t=u(r[0]);if(!t.isValid())throw new Error(`unsupported type ${typeof t}, expected type is Date or Dayjs`);return t},k=r=>!g(r),g=r=>{const t=c(r),e=t.day(),a=t.format("YYYY-MM-DD");return!!(S[a]||e>=1&&e<=5&&!Y[a])},$=r=>(r=c(r),!!V[r.format("YYYY-MM-DD")]),H=r=>{r=c(r);const t=r.format("YYYY-MM-DD");if(S[t])return{date:t,work:!0,name:S[t]};if(Y[t])return{date:t,work:!1,name:Y[t]};{const e=r.day();return{date:t,work:e!==0&&e!==6,name:r.format("dddd")}}},R=(r,t,e=!0)=>(r=c(r),t=c(t),e?m(r,t).filter(k).map(a=>a.format("YYYY-MM-DD")):m(r,t).filter(a=>Y[a.format("YYYY-MM-DD")]).map(a=>a.format("YYYY-MM-DD"))),E=(r,t,e=!0)=>(r=c(r),t=c(t),e?m(r,t).filter(g).map(a=>a.format("YYYY-MM-DD")):m(r,t).filter(a=>g(a)&&a.day()>=1&&a.day()<=5).map(a=>a.format("YYYY-MM-DD"))),B=(r=0,t=h())=>{if(t=u(t),r===0){if(g(t))return t.format("YYYY-MM-DD");r=1}const e=r>0?1:-1;let a=Math.abs(r);for(;a>0;)t=t.add(e,"day"),g(t)&&a--;return t.format("YYYY-MM-DD")},Z=Object.freeze(Object.defineProperty({__proto__:null,findWorkday:B,getDayDetail:H,getHolidaysInRange:R,getWorkdaysInRange:E,isHoliday:k,isInLieu:$,isWorkday:g},Symbol.toStringTag,{value:"Module"})),G={the_beginning_of_spring:[4.6295,3.87],rain_water:[19.4599,18.73],the_waking_of_insects:[6.3926,5.63],the_spring_equinox:[21.4155,20.646],pure_brightness:[5.59,4.81],grain_rain:[20.888,20.1],the_beginning_of_summer:[6.318,5.52],lesser_fullness_of_grain:[21.86,21.04],grain_in_beard:[6.5,5.678],the_summer_solstice:[22.2,21.37],lesser_heat:[7.928,7.108],greater_heat:[23.65,22.83],the_beginning_of_autumn:[28.35,7.5],the_end_of_heat:[23.95,23.13],white_dew:[8.44,7.646],the_autumn_equinox:[23.822,23.042],code_dew:[9.098,8.318],frost_descent:[24.218,23.438],the_beginning_of_winter:[8.218,7.438],lesser_snow:[23.08,22.36],greater_snow:[7.9,7.18],the_winter_solstice:[22.6,21.94],lesser_cold:[6.11,5.4055],greater_cold:[20.84,20.12]},A={1:["lesser_cold","greater_cold"],2:["the_beginning_of_spring","rain_water"],3:["the_waking_of_insects","the_spring_equinox"],4:["pure_brightness","grain_rain"],5:["the_beginning_of_summer","lesser_fullness_of_grain"],6:["grain_in_beard","the_summer_solstice"],7:["lesser_heat","greater_heat"],8:["the_beginning_of_autumn","the_end_of_heat"],9:["white_dew","the_autumn_equinox"],10:["code_dew","frost_descent"],11:["the_beginning_of_winter","lesser_snow"],12:["greater_snow","the_winter_solstice"]},J={"2026_rain_water":-1,"2084_the_spring_equinox":1,"1911_the_beginning_of_summer":1,"2008_lesser_fullness_of_grain":1,"1902_grain_in_beard":1,"1928_the_summer_solstice":1,"1925_lesser_heat":1,"2016_lesser_heat":1,"1922_greater_heat":1,"2002_the_beginning_of_autumn":1,"1927_white_dew":1,"1942_the_autumn_equinox":1,"2089_frost_descent":1,"2089_the_beginning_of_winter":1,"1978_lesser_snow":1,"1954_greater_snow":1,"1918_the_winter_solstice":-1,"2021_the_winter_solstice":-1,"1982_lesser_cold":1,"2019_lesser_cold":-1,"2000_greater_cold":1,"2082_greater_cold":1},I={lesser_cold:"小寒",greater_cold:"大寒",the_beginning_of_spring:"立春",rain_water:"雨水",the_waking_of_insects:"惊蛰",the_spring_equinox:"春分",pure_brightness:"清明",grain_rain:"谷雨",the_beginning_of_summer:"立夏",lesser_fullness_of_grain:"小满",grain_in_beard:"芒种",the_summer_solstice:"夏至",lesser_heat:"小暑",greater_heat:"大暑",the_beginning_of_autumn:"立秋",the_end_of_heat:"处暑",white_dew:"白露",the_autumn_equinox:"秋分",code_dew:"寒露",frost_descent:"霜降",the_beginning_of_winter:"立冬",lesser_snow:"小雪",greater_snow:"大雪",the_winter_solstice:"冬至"},M=(r,t,e)=>{const a=r>=2e3?21:20,i=r%100,s=.2422,o=G[e][a===21?1:0];let d=Math.floor(i/4);["lesser_cold","greater_cold","the_beginning_of_spring","rain_water"].includes(e)&&(d=Math.floor((i-1)/4));let n=Math.floor(i*s+o)-d;const w=J[`${r}_${e}`];return w&&(n+=w),h(`${r}-${t}-${n}`).format("YYYY-MM-DD")},j=(r,t)=>{const e=[];let a=u(r);const i=u(t||r);for(;a.isBefore(i)||a.isSame(i);){const s=a.year(),o=a.month()+1;A[o].forEach(d=>{const n=h(M(s,o,d));(n!=null&&n.isBefore(i)||n!=null&&n.isSame(i))&&(n!=null&&n.isAfter(a)||n!=null&&n.isSame(a))&&e.push({date:n.format("YYYY-MM-DD"),term:d,name:I[d],index:1})}),o===12?a=a.add(1,"year").startOf("year"):a=a.add(1,"month").startOf("month")}return e},C=(r,t)=>{let e=u(r).subtract(1,"month");const a=u(t||r).add(1,"month"),i=[];for(;e.isBefore(a)||e.isSame(a);){const o=e.year(),d=e.month()+1;A[d].forEach(n=>{const w=h(M(o,d,n));i.push({term:n,date:w})}),e.month()===11?e=e.add(1,"year").startOf("year"):e=e.add(1,"month").startOf("month")}const s=[];return i.forEach((o,d)=>{for(let n=o.date;i[d+1]&&n.isBefore(i[d+1].date);n=n.add(1,"day"))s.push({day:n,term:o.term,name:I[o.term],index:n.diff(o.date,"day")+1})}),t||(t=r),s.filter(o=>o.day.isBetween(r,t,"day")).map(o=>({date:o.day.format("YYYY-MM-DD"),term:o.term,name:o.name,index:o.index}))},K=Object.freeze(Object.defineProperty({__proto__:null,getSolarTermDate:M,getSolarTerms:j,getSolarTermsInRange:C},Symbol.toStringTag,{value:"Module"})),b=[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],W=["零","一","二","三","四","五","六","七","八","九"],Q=["正","二","三","四","五","六","七","八","九","十","冬","腊"],X=["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"],tt=["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"],et=["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"],q=r=>{let t=348;for(let e=32768;e>8;e>>=1)t+=b[r-1900]&e?1:0;return t+T(r)},L=r=>b[r-1900]&15,T=r=>L(r)?b[r-1900]&65536?30:29:0,F=r=>X[r%10]+tt[r%12],O=(r,t)=>b[r-1900]&65536>>t?30:29,rt=r=>et[(r-4)%12],at=r=>{const t=["初","十","廿","三十"];if(r===10)return"初十";if(r===20)return"二十";if(r===30)return"三十";const e=Math.floor(r/10),a=r%10;return t[e]+(a?W[a]:"")},p=r=>{const t=new Array(7).fill(0);let e=0,a=0;const i=h(new Date(1900,0,31)),s=h(r);let o=s.diff(i,"day");t[5]=o+40,t[4]=14;let d=1900;for(;d<2100&&o>0;d++)e=q(d),o-=e,t[4]+=12;o<0&&(o+=e,d--,t[4]-=12),t[0]=d,t[3]=d-1864,a=L(d),t[6]=0;for(let n=1;n<13&&o>=0;n++)a>0&&n===a+1&&t[6]===0?(--n,t[6]=1,e=T(d)):e=O(d,n),t[6]===1&&n===a+1&&(t[6]=0),o-=e,t[6]===0&&t[4]++,t[1]=n;return o===0&&a>0&&t[6]===1?t[6]=0:o<0&&(o+=e,t[1]--,t[4]--),t[2]=o+1,{date:s.format("YYYY-MM-DD"),lunarYear:t[0],lunarMon:t[1]+1,lunarDay:t[2],isLeap:!!t[6],zodiac:rt(t[0]),yearCyl:F(t[3]),monCyl:F(t[4]),dayCyl:F(t[5]),lunarYearCN:`${t[0].toString().split("").map(n=>W[Number(n)]).join("")}`,lunarMonCN:`${Q[t[1]]}月`,lunarDayCN:at(t[2])}},N=(r,t)=>{const e=h(r),a=h(t),i=[];for(let s=e;s.isBefore(a)||s.isSame(a,"day");s=s.add(1,"day"))i.push(p(s));return i},v=r=>{const t=h(r),e=t.year(),a=t.month()+1,i=t.date();let s=0;for(let f=1900;f<e;f++)s+=q(f);let o=L(e);for(let f=1;f<a;f++)s+=O(e,f),f===o&&(s+=T(e));s+=i-1;const d=h(new Date(1900,0,31)),n=d.add(s,"day").format("YYYY-MM-DD");let w=s,U;return o===a&&(w+=O(e,a),U=d.add(w,"day").format("YYYY-MM-DD")),{date:n,leapMonthDate:U}},ot={...Z,...K,...Object.freeze(Object.defineProperty({__proto__:null,default:{getLunarDate:p,getLunarDatesInRange:N,getSolarDateFromLunar:v},getLunarDate:p,getLunarDatesInRange:N,getSolarDateFromLunar:v},Symbol.toStringTag,{value:"Module"}))};l.default=ot,l.findWorkday=B,l.getDayDetail=H,l.getHolidaysInRange=R,l.getLunarDate=p,l.getLunarDatesInRange=N,l.getSolarDateFromLunar=v,l.getSolarTermDate=M,l.getSolarTerms=j,l.getSolarTermsInRange=C,l.getWorkdaysInRange=E,l.isHoliday=k,l.isInLieu=$,l.isWorkday=g,Object.defineProperties(l,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});