kor-lunar 1.0.2 → 1.1.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.
package/README.md CHANGED
@@ -1,10 +1,65 @@
1
1
  # kor-lunar
2
2
 
3
- 한국천문연구원(KASI)에서 제공하는 음력/양력 데이터를 기반으로 오프라인 환경에서도 사용 수 있도록 구현된 라이브러리입니다.
3
+ 이 라이브러리는 학습용으로 제작되었으며, 한국천문연구원(KASI) 음력·양력 데이터를 기반으로 한 자바스크립트 라이브러리입니다. 오프라인 환경에서도 사용할 수 있도록 구현되었습니다.
4
4
 
5
- 라이브러리는 학습용으로 제작되었으며, 2016년 이후로 데이터를 갱신하지 않아 최신 변경 사항이 반영되지 않았을 수 있습니다.
5
+ > **⚠️ 주의:** 데이터는 2016년 이후로 갱신되지 않아 최신 변경 사항이 반영되지 않을 수 있습니다. 중요한 작업에는 아래 [한국천문연구원 공식 API](#출처-및-참고-자료)를 사용하시기 바랍니다.
6
6
 
7
- 정확한 정보가 필요한 중요한 작업에는 아래 출처의 공식 API를 통해 데이터를 직접 조회하시기 바랍니다.
7
+ ## 특징
8
+
9
+ - 음력 ↔ 양력 변환 지원
10
+ - 윤달 처리 가능 (`isLeapMonth` 옵션)
11
+ - 오프라인 환경에서도 사용 가능
12
+
13
+ ## 지원 날짜 범위
14
+
15
+ - **toLunar**: `양력 → 음력` 날짜 범위 1890년 1월 21일 ~ 2050년 1월 22일
16
+ - **toSolar**: `음력 → 양력` 날짜 범위 1890년 1월 1일 ~ 2049년 12월 29일
17
+
18
+ _범위를 벗어난 날짜가 입력될 경우 `RangeError`가 발생하며, 오류 메시지에 입력한 날짜 정보가 포함됩니다._
19
+
20
+ ## 설치
21
+
22
+ ```bash
23
+ npm install kor-lunar
24
+ ```
25
+
26
+ ## 사용법
27
+
28
+ ### 모듈 불러오기
29
+
30
+ ```js
31
+ import korLunar from "kor-lunar";
32
+ // 또는
33
+ const korLunar = require("kor-lunar");
34
+ ```
35
+
36
+ ### 브라우저 CDN
37
+
38
+ ```html
39
+ <script src="https://cdn.jsdelivr.net/npm/kor-lunar/dist/kor-lunar.min.js"></script>
40
+ ```
41
+
42
+ ## 예제
43
+
44
+ ```js
45
+ import korLunar from "kor-lunar";
46
+
47
+ // 양력 → 음력 (isLeapMonth: false = 평달, true = 윤달)
48
+ console.log(korLunar.toLunar(2025, 6, 25));
49
+ // { year: 2025, month: 6, day: 1, isLeapMonth: false }
50
+ console.log(korLunar.toLunar(2025, 7, 25));
51
+ // { year: 2025, month: 6, day: 1, isLeapMonth: true }
52
+
53
+ // 음력 → 양력
54
+ console.log(korLunar.toSolar(2025, 6, 1, false));
55
+ // { year: 2025, month: 6, day: 25 }
56
+ console.log(korLunar.toSolar(2025, 6, 1, true));
57
+ // { year: 2025, month: 7, day: 25 }
58
+ ```
59
+
60
+ ## 라이선스
61
+
62
+ [MIT](LICENSE)
8
63
 
9
64
  ## 출처 및 참고 자료
10
65
 
@@ -31,12 +31,18 @@ var LUN_TABLE = [
31
31
  var BASE_YEAR$1 = 1890;
32
32
  var BASE_MONTH$1 = 1;
33
33
  var BASE_DAY$1 = 1;
34
+ var BASE_VALUE$1 = BASE_YEAR$1 * 10000 + BASE_MONTH$1 * 100 + BASE_DAY$1;
34
35
  var MAX_YEAR$1 = 2049;
35
36
  var MAX_MONTH$1 = 12;
36
37
  var MAX_DAY$1 = 29;
38
+ var MAX_VALUE$1 = MAX_YEAR$1 * 10000 + MAX_MONTH$1 * 100 + MAX_DAY$1;
37
39
  var SMALL_MONTH_DAY = 29;
38
40
  var BIG_MONTH_DAY = 30;
39
41
  var totalDaysBeforeYear$1 = {};
42
+ var checkRangeDate$1 = function (year, month, day) {
43
+ var value = year * 10000 + month * 100 + day;
44
+ return value >= BASE_VALUE$1 && value <= MAX_VALUE$1;
45
+ };
40
46
  var getYearData = function (year) {
41
47
  return LUN_TABLE[year - BASE_YEAR$1];
42
48
  };
@@ -151,9 +157,12 @@ var LunarData = {
151
157
  BASE_YEAR: BASE_YEAR$1,
152
158
  BASE_MONTH: BASE_MONTH$1,
153
159
  BASE_DAY: BASE_DAY$1,
160
+ BASE_VALUE: BASE_VALUE$1,
154
161
  MAX_YEAR: MAX_YEAR$1,
155
162
  MAX_MONTH: MAX_MONTH$1,
156
163
  MAX_DAY: MAX_DAY$1,
164
+ MAX_VALUE: MAX_VALUE$1,
165
+ checkRangeDate: checkRangeDate$1,
157
166
  getMonthDays: getMonthDays$1,
158
167
  getLeapMonth: getLeapMonth,
159
168
  hasLeapMonth: hasLeapMonth,
@@ -172,10 +181,16 @@ var LEAP_YEAR_DAY = 366;
172
181
  var BASE_YEAR = 1890;
173
182
  var BASE_MONTH = 1;
174
183
  var BASE_DAY = 21;
184
+ var BASE_VALUE = BASE_YEAR * 10000 + BASE_MONTH * 100 + BASE_DAY;
175
185
  var MAX_YEAR = 2050;
176
186
  var MAX_MONTH = 1;
177
187
  var MAX_DAY = 22;
188
+ var MAX_VALUE = MAX_YEAR * 10000 + MAX_MONTH * 100 + MAX_DAY;
178
189
  var totalDaysBeforeYear = {};
190
+ var checkRangeDate = function (year, month, day) {
191
+ var value = year * 10000 + month * 100 + day;
192
+ return value >= BASE_VALUE && value <= MAX_VALUE;
193
+ };
179
194
  var isLeapYear = function (year) {
180
195
  return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
181
196
  };
@@ -214,9 +229,12 @@ var SolarData = {
214
229
  BASE_YEAR: BASE_YEAR,
215
230
  BASE_MONTH: BASE_MONTH,
216
231
  BASE_DAY: BASE_DAY,
232
+ BASE_VALUE: BASE_VALUE,
217
233
  MAX_YEAR: MAX_YEAR,
218
234
  MAX_MONTH: MAX_MONTH,
219
235
  MAX_DAY: MAX_DAY,
236
+ MAX_VALUE: MAX_VALUE,
237
+ checkRangeDate: checkRangeDate,
220
238
  isLeapYear: isLeapYear,
221
239
  getMonthDays: getMonthDays,
222
240
  getYearDays: getYearDays,
@@ -225,6 +243,9 @@ var SolarData = {
225
243
 
226
244
  var SOLAR_LUNAR_DAY_DIFF = 20;
227
245
  var toLunar = function (solYear, solMonth, solDay) {
246
+ if (!SolarData.checkRangeDate(solYear, solMonth, solDay)) {
247
+ throw new RangeError("\uC9C0\uC6D0\uB418\uC9C0 \uC54A\uB294 \uB0A0\uC9DC\uC785\uB2C8\uB2E4. \uC785\uB825\uD55C \uB0A0\uC9DC: ".concat(solYear, "-").concat(solMonth, "-").concat(solDay));
248
+ }
228
249
  var year = LunarData.BASE_YEAR;
229
250
  var month = LunarData.BASE_MONTH;
230
251
  var day = LunarData.BASE_DAY + SolarData.getTotalDays(solYear, solMonth, solDay) - SOLAR_LUNAR_DAY_DIFF - 1;
@@ -257,6 +278,9 @@ var toLunar = function (solYear, solMonth, solDay) {
257
278
  return { year: year, month: month, day: day, isLeapMonth: isLeapMonth };
258
279
  };
259
280
  var toSolar = function (lunYear, lunMonth, lunDay, isLeapMonth) {
281
+ if (!LunarData.checkRangeDate(lunYear, lunMonth, lunDay)) {
282
+ throw new RangeError("\uC9C0\uC6D0\uB418\uC9C0 \uC54A\uB294 \uB0A0\uC9DC\uC785\uB2C8\uB2E4. \uC785\uB825\uD55C \uB0A0\uC9DC: ".concat(lunYear, "-").concat(lunMonth, "-").concat(lunDay));
283
+ }
260
284
  var year = SolarData.BASE_YEAR;
261
285
  var month = SolarData.BASE_MONTH;
262
286
  var day = SolarData.BASE_DAY + LunarData.getTotalDays(lunYear, lunMonth, lunDay, isLeapMonth) - 1;
@@ -1 +1 @@
1
- {"version":3,"file":"kor-lunar.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"kor-lunar.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/kor-lunar.js CHANGED
@@ -35,12 +35,18 @@ var LUN_TABLE = [
35
35
  var BASE_YEAR$1 = 1890;
36
36
  var BASE_MONTH$1 = 1;
37
37
  var BASE_DAY$1 = 1;
38
+ var BASE_VALUE$1 = BASE_YEAR$1 * 10000 + BASE_MONTH$1 * 100 + BASE_DAY$1;
38
39
  var MAX_YEAR$1 = 2049;
39
40
  var MAX_MONTH$1 = 12;
40
41
  var MAX_DAY$1 = 29;
42
+ var MAX_VALUE$1 = MAX_YEAR$1 * 10000 + MAX_MONTH$1 * 100 + MAX_DAY$1;
41
43
  var SMALL_MONTH_DAY = 29;
42
44
  var BIG_MONTH_DAY = 30;
43
45
  var totalDaysBeforeYear$1 = {};
46
+ var checkRangeDate$1 = function (year, month, day) {
47
+ var value = year * 10000 + month * 100 + day;
48
+ return value >= BASE_VALUE$1 && value <= MAX_VALUE$1;
49
+ };
44
50
  var getYearData = function (year) {
45
51
  return LUN_TABLE[year - BASE_YEAR$1];
46
52
  };
@@ -155,9 +161,12 @@ var LunarData = {
155
161
  BASE_YEAR: BASE_YEAR$1,
156
162
  BASE_MONTH: BASE_MONTH$1,
157
163
  BASE_DAY: BASE_DAY$1,
164
+ BASE_VALUE: BASE_VALUE$1,
158
165
  MAX_YEAR: MAX_YEAR$1,
159
166
  MAX_MONTH: MAX_MONTH$1,
160
167
  MAX_DAY: MAX_DAY$1,
168
+ MAX_VALUE: MAX_VALUE$1,
169
+ checkRangeDate: checkRangeDate$1,
161
170
  getMonthDays: getMonthDays$1,
162
171
  getLeapMonth: getLeapMonth,
163
172
  hasLeapMonth: hasLeapMonth,
@@ -176,10 +185,16 @@ var LEAP_YEAR_DAY = 366;
176
185
  var BASE_YEAR = 1890;
177
186
  var BASE_MONTH = 1;
178
187
  var BASE_DAY = 21;
188
+ var BASE_VALUE = BASE_YEAR * 10000 + BASE_MONTH * 100 + BASE_DAY;
179
189
  var MAX_YEAR = 2050;
180
190
  var MAX_MONTH = 1;
181
191
  var MAX_DAY = 22;
192
+ var MAX_VALUE = MAX_YEAR * 10000 + MAX_MONTH * 100 + MAX_DAY;
182
193
  var totalDaysBeforeYear = {};
194
+ var checkRangeDate = function (year, month, day) {
195
+ var value = year * 10000 + month * 100 + day;
196
+ return value >= BASE_VALUE && value <= MAX_VALUE;
197
+ };
183
198
  var isLeapYear = function (year) {
184
199
  return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
185
200
  };
@@ -218,9 +233,12 @@ var SolarData = {
218
233
  BASE_YEAR: BASE_YEAR,
219
234
  BASE_MONTH: BASE_MONTH,
220
235
  BASE_DAY: BASE_DAY,
236
+ BASE_VALUE: BASE_VALUE,
221
237
  MAX_YEAR: MAX_YEAR,
222
238
  MAX_MONTH: MAX_MONTH,
223
239
  MAX_DAY: MAX_DAY,
240
+ MAX_VALUE: MAX_VALUE,
241
+ checkRangeDate: checkRangeDate,
224
242
  isLeapYear: isLeapYear,
225
243
  getMonthDays: getMonthDays,
226
244
  getYearDays: getYearDays,
@@ -229,6 +247,9 @@ var SolarData = {
229
247
 
230
248
  var SOLAR_LUNAR_DAY_DIFF = 20;
231
249
  var toLunar = function (solYear, solMonth, solDay) {
250
+ if (!SolarData.checkRangeDate(solYear, solMonth, solDay)) {
251
+ throw new RangeError("\uC9C0\uC6D0\uB418\uC9C0 \uC54A\uB294 \uB0A0\uC9DC\uC785\uB2C8\uB2E4. \uC785\uB825\uD55C \uB0A0\uC9DC: ".concat(solYear, "-").concat(solMonth, "-").concat(solDay));
252
+ }
232
253
  var year = LunarData.BASE_YEAR;
233
254
  var month = LunarData.BASE_MONTH;
234
255
  var day = LunarData.BASE_DAY + SolarData.getTotalDays(solYear, solMonth, solDay) - SOLAR_LUNAR_DAY_DIFF - 1;
@@ -261,6 +282,9 @@ var toLunar = function (solYear, solMonth, solDay) {
261
282
  return { year: year, month: month, day: day, isLeapMonth: isLeapMonth };
262
283
  };
263
284
  var toSolar = function (lunYear, lunMonth, lunDay, isLeapMonth) {
285
+ if (!LunarData.checkRangeDate(lunYear, lunMonth, lunDay)) {
286
+ throw new RangeError("\uC9C0\uC6D0\uB418\uC9C0 \uC54A\uB294 \uB0A0\uC9DC\uC785\uB2C8\uB2E4. \uC785\uB825\uD55C \uB0A0\uC9DC: ".concat(lunYear, "-").concat(lunMonth, "-").concat(lunDay));
287
+ }
264
288
  var year = SolarData.BASE_YEAR;
265
289
  var month = SolarData.BASE_MONTH;
266
290
  var day = SolarData.BASE_DAY + LunarData.getTotalDays(lunYear, lunMonth, lunDay, isLeapMonth) - 1;
@@ -1 +1 @@
1
- {"version":3,"file":"kor-lunar.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"kor-lunar.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,2 +1,2 @@
1
- var korLunar=function(r){"use strict";var n=[50342582,46534058,50360036,46403236,46402890,50222421,46533271,46400854,50345309,46533333,50367442,46401362,46534309,50223914,46401099,46533275,50416294,46400874,46533465,50342826,46401362,50359717,46402341,46402123,50354523,46533293,46400874,50341301,46533545,50363858,46402962,46402853,50355501,46401878,46400181,50481885,46401236,46534057,50343626,46403218,50226854,46400807,46533207,50420054,46533338,46401236,50411345,46401353,50428691,46402195,46400811,50423067,46532973,46533482,50417060,46402468,46402377,50343243,46402197,50363051,46400813,46533293,50420394,46534066,46402980,50413217,46402890,50367893,46402198,46400854,50357621,46533333,46401234,50349909,46534309,46403146,50214478,46533275,50363094,46400874,46533465,50355122,46401362,46401317,50350891,46402123,50366891,46400173,46531947,50423209,46534057,46402962,50351509,46402853,50376269,46402134,46400182,50490093,46401236,46534057,50355922,46403218,46402854,50214190,46533207,50366902,46533466,46401236,50354025,46401353,46401171,50350743,46400811,46533211,50342574,46400362,50494933,46402468,46402377,50355539,46402197,46400813,50410797,46533293,50371498,46400978,46534053,50355882,46402890,46402197,50350749,46400854,46533301,50342614,46401234,50358117,46534309,46403146,50222678,46533787,46400858,50345325,46533481,50380626,46401362,46402341,50424587,46402123,46400683,50352827,46531949,46533481,50343338,46402962,50364069,46402853,46402125,50420301,46400182,46532021],t=1890,u={},o=function(r){return n[r-t]},e=function(r,n){return 0===(o(r)>>n-1&1)?29:30},f=function(r){return o(r)>>12&15},a=function(r,n){return n===f(r)},i=function(r,n){return a(r,n)?0===(o(r)>>16&1)?29:30:0},c=function(r){return o(r)>>17&511};u[1890]=0;for(var v=1891;v<2049;v++)u[v]=u[v-1]+c(v-1);var d=function(r){return u[r]},l=function(r,n,t){for(var u=0,o=1;o<n;o++)u+=e(r,o),o===f(r)&&(u+=i(r,o));var a=f(r);return t&&a===n&&(u+=e(r,n)),u},y=t,s=1,L=1,h=e,m=f,p=i,M=c,S=function(r,n,t,u){return d(r)+l(r,n,u)+t},_=[31,28,31,30,31,30,31,31,30,31,30,31],b=1890,j={},k=function(r){return r%4==0&&r%100!=0||r%400==0},O=function(r,n){return 2==n&&k(r)?29:_[n-1]},P=function(r){return k(r)?366:365};j[1890]=0;for(var g=1891;g<2050;g++)j[g]=j[g-1]+P(g-1);var q=b,w=1,x=21,z=O,A=P,B=function(r,n,t){var u=function(r){return j[r]}(r)+function(r,n){for(var t=0,u=1;u<n;u++)t+=O(r,u);return t}(r,n)+t;return u},C=function(r,n,t){for(var u=y,o=s,e=L+B(r,n,t)-20-1,f=M(u);e>f;)u++,e-=f,f=M(u);for(var a=!1,i=m(u),c=h(u,o);e>c;)e-=c,a=!1,o!==i?(++o>12&&(o=1,u++,i=m(u)),c=h(u,o)):(i=0,c=p(u,o),a=!0);return{year:u,month:o,day:e,isLeapMonth:a}},D=function(r,n,t,u){for(var o=q,e=w,f=x+S(r,n,t,u)-1,a=A(o);f>a;)f-=a,o++,a=A(o);for(var i=z(o,e);f>i;)f-=i,++e>12&&(e=1,o++),i=z(o,e);return{year:o,month:e,day:f}},E={toLunar:C,toSolar:D};return r.default=E,r.toLunar=C,r.toSolar=D,Object.defineProperty(r,"__esModule",{value:!0}),r}({});
1
+ var korLunar=function(r){"use strict";var n=[50342582,46534058,50360036,46403236,46402890,50222421,46533271,46400854,50345309,46533333,50367442,46401362,46534309,50223914,46401099,46533275,50416294,46400874,46533465,50342826,46401362,50359717,46402341,46402123,50354523,46533293,46400874,50341301,46533545,50363858,46402962,46402853,50355501,46401878,46400181,50481885,46401236,46534057,50343626,46403218,50226854,46400807,46533207,50420054,46533338,46401236,50411345,46401353,50428691,46402195,46400811,50423067,46532973,46533482,50417060,46402468,46402377,50343243,46402197,50363051,46400813,46533293,50420394,46534066,46402980,50413217,46402890,50367893,46402198,46400854,50357621,46533333,46401234,50349909,46534309,46403146,50214478,46533275,50363094,46400874,46533465,50355122,46401362,46401317,50350891,46402123,50366891,46400173,46531947,50423209,46534057,46402962,50351509,46402853,50376269,46402134,46400182,50490093,46401236,46534057,50355922,46403218,46402854,50214190,46533207,50366902,46533466,46401236,50354025,46401353,46401171,50350743,46400811,46533211,50342574,46400362,50494933,46402468,46402377,50355539,46402197,46400813,50410797,46533293,50371498,46400978,46534053,50355882,46402890,46402197,50350749,46400854,46533301,50342614,46401234,50358117,46534309,46403146,50222678,46533787,46400858,50345325,46533481,50380626,46401362,46402341,50424587,46402123,46400683,50352827,46531949,46533481,50343338,46402962,50364069,46402853,46402125,50420301,46400182,46532021],t=1890,o=18900101,u=2049,e=20491229,a={},c=function(r){return n[r-t]},f=function(r,n){return 0===(c(r)>>n-1&1)?29:30},i=function(r){return c(r)>>12&15},v=function(r,n){return n===i(r)},d=function(r,n){return v(r,n)?0===(c(r)>>16&1)?29:30:0},h=function(r){return c(r)>>17&511};a[1890]=0;for(var l=1891;l<u;l++)a[l]=a[l-1]+h(l-1);var y=function(r){return a[r]},s=function(r,n,t){for(var o=0,u=1;u<n;u++)o+=f(r,u),u===i(r)&&(o+=d(r,u));var e=i(r);return t&&e===n&&(o+=f(r,n)),o},w=t,L=1,g=1,m=function(r,n,t){var u=1e4*r+100*n+t;return u>=o&&u<=e},p=f,E=i,M=d,R=h,S=function(r,n,t,o){return y(r)+s(r,n,o)+t},_=[31,28,31,30,31,30,31,31,30,31,30,31],b=1890,j=18900121,k=2050,O=20500122,P={},q=function(r){return r%4==0&&r%100!=0||r%400==0},x=function(r,n){return 2==n&&q(r)?29:_[n-1]},z=function(r){return q(r)?366:365};P[1890]=0;for(var A=1891;A<k;A++)P[A]=P[A-1]+z(A-1);var B=b,C=1,D=21,F=function(r,n,t){var o=1e4*r+100*n+t;return o>=j&&o<=O},G=x,H=z,I=function(r,n,t){var o=function(r){return P[r]}(r)+function(r,n){for(var t=0,o=1;o<n;o++)t+=x(r,o);return t}(r,n)+t;return o},J=function(r,n,t){if(!F(r,n,t))throw new RangeError("지원되지 않는 날짜입니다. 입력한 날짜: ".concat(r,"-").concat(n,"-").concat(t));for(var o=w,u=L,e=g+I(r,n,t)-20-1,a=R(o);e>a;)o++,e-=a,a=R(o);for(var c=!1,f=E(o),i=p(o,u);e>i;)e-=i,c=!1,u!==f?(++u>12&&(u=1,o++,f=E(o)),i=p(o,u)):(f=0,i=M(o,u),c=!0);return{year:o,month:u,day:e,isLeapMonth:c}},K=function(r,n,t,o){if(!m(r,n,t))throw new RangeError("지원되지 않는 날짜입니다. 입력한 날짜: ".concat(r,"-").concat(n,"-").concat(t));for(var u=B,e=C,a=D+S(r,n,t,o)-1,c=H(u);a>c;)a-=c,u++,c=H(u);for(var f=G(u,e);a>f;)a-=f,++e>12&&(e=1,u++),f=G(u,e);return{year:u,month:e,day:a}},N={toLunar:J,toSolar:K};return r.default=N,r.toLunar=J,r.toSolar=K,Object.defineProperty(r,"__esModule",{value:!0}),r}({});
2
2
  //# sourceMappingURL=kor-lunar.min.js.map
@@ -2,9 +2,12 @@ export declare const LunarData: {
2
2
  BASE_YEAR: number;
3
3
  BASE_MONTH: number;
4
4
  BASE_DAY: number;
5
+ BASE_VALUE: number;
5
6
  MAX_YEAR: number;
6
7
  MAX_MONTH: number;
7
8
  MAX_DAY: number;
9
+ MAX_VALUE: number;
10
+ checkRangeDate: (year: number, month: number, day: number) => boolean;
8
11
  getMonthDays: (year: number, month: number) => number;
9
12
  getLeapMonth: (year: number) => number;
10
13
  hasLeapMonth: (year: number) => boolean;
@@ -2,9 +2,12 @@ export declare const SolarData: {
2
2
  BASE_YEAR: number;
3
3
  BASE_MONTH: number;
4
4
  BASE_DAY: number;
5
+ BASE_VALUE: number;
5
6
  MAX_YEAR: number;
6
7
  MAX_MONTH: number;
7
8
  MAX_DAY: number;
9
+ MAX_VALUE: number;
10
+ checkRangeDate: (year: number, month: number, day: number) => boolean;
8
11
  isLeapYear: (year: number) => boolean;
9
12
  getMonthDays: (year: number, month: number) => number;
10
13
  getYearDays: (year: number) => number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kor-lunar",
3
- "version": "1.0.2",
3
+ "version": "1.1.1",
4
4
  "description": "한국 음력 변환 유틸 / Korean lunar calendar converter",
5
5
  "main": "dist/kor-lunar.js",
6
6
  "module": "dist/kor-lunar.esm.js",