kor-lunar 1.0.2 → 1.1.0

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,19 @@ 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
+ if (value < BASE_VALUE$1 || value > MAX_VALUE$1)
45
+ return false;
46
+ };
40
47
  var getYearData = function (year) {
41
48
  return LUN_TABLE[year - BASE_YEAR$1];
42
49
  };
@@ -151,9 +158,12 @@ var LunarData = {
151
158
  BASE_YEAR: BASE_YEAR$1,
152
159
  BASE_MONTH: BASE_MONTH$1,
153
160
  BASE_DAY: BASE_DAY$1,
161
+ BASE_VALUE: BASE_VALUE$1,
154
162
  MAX_YEAR: MAX_YEAR$1,
155
163
  MAX_MONTH: MAX_MONTH$1,
156
164
  MAX_DAY: MAX_DAY$1,
165
+ MAX_VALUE: MAX_VALUE$1,
166
+ checkRangeDate: checkRangeDate$1,
157
167
  getMonthDays: getMonthDays$1,
158
168
  getLeapMonth: getLeapMonth,
159
169
  hasLeapMonth: hasLeapMonth,
@@ -172,10 +182,17 @@ var LEAP_YEAR_DAY = 366;
172
182
  var BASE_YEAR = 1890;
173
183
  var BASE_MONTH = 1;
174
184
  var BASE_DAY = 21;
185
+ var BASE_VALUE = BASE_YEAR * 10000 + BASE_MONTH * 100 + BASE_DAY;
175
186
  var MAX_YEAR = 2050;
176
187
  var MAX_MONTH = 1;
177
188
  var MAX_DAY = 22;
189
+ var MAX_VALUE = MAX_YEAR * 10000 + MAX_MONTH * 100 + MAX_DAY;
178
190
  var totalDaysBeforeYear = {};
191
+ var checkRangeDate = function (year, month, day) {
192
+ var value = year * 10000 + month * 100 + day;
193
+ if (value < BASE_VALUE || value > MAX_VALUE)
194
+ return false;
195
+ };
179
196
  var isLeapYear = function (year) {
180
197
  return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
181
198
  };
@@ -214,9 +231,12 @@ var SolarData = {
214
231
  BASE_YEAR: BASE_YEAR,
215
232
  BASE_MONTH: BASE_MONTH,
216
233
  BASE_DAY: BASE_DAY,
234
+ BASE_VALUE: BASE_VALUE,
217
235
  MAX_YEAR: MAX_YEAR,
218
236
  MAX_MONTH: MAX_MONTH,
219
237
  MAX_DAY: MAX_DAY,
238
+ MAX_VALUE: MAX_VALUE,
239
+ checkRangeDate: checkRangeDate,
220
240
  isLeapYear: isLeapYear,
221
241
  getMonthDays: getMonthDays,
222
242
  getYearDays: getYearDays,
@@ -225,6 +245,9 @@ var SolarData = {
225
245
 
226
246
  var SOLAR_LUNAR_DAY_DIFF = 20;
227
247
  var toLunar = function (solYear, solMonth, solDay) {
248
+ if (!SolarData.checkRangeDate(solYear, solMonth, solDay)) {
249
+ 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));
250
+ }
228
251
  var year = LunarData.BASE_YEAR;
229
252
  var month = LunarData.BASE_MONTH;
230
253
  var day = LunarData.BASE_DAY + SolarData.getTotalDays(solYear, solMonth, solDay) - SOLAR_LUNAR_DAY_DIFF - 1;
@@ -257,6 +280,9 @@ var toLunar = function (solYear, solMonth, solDay) {
257
280
  return { year: year, month: month, day: day, isLeapMonth: isLeapMonth };
258
281
  };
259
282
  var toSolar = function (lunYear, lunMonth, lunDay, isLeapMonth) {
283
+ if (!LunarData.checkRangeDate(lunYear, lunMonth, lunDay)) {
284
+ 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));
285
+ }
260
286
  var year = SolarData.BASE_YEAR;
261
287
  var month = SolarData.BASE_MONTH;
262
288
  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,19 @@ 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
+ if (value < BASE_VALUE$1 || value > MAX_VALUE$1)
49
+ return false;
50
+ };
44
51
  var getYearData = function (year) {
45
52
  return LUN_TABLE[year - BASE_YEAR$1];
46
53
  };
@@ -155,9 +162,12 @@ var LunarData = {
155
162
  BASE_YEAR: BASE_YEAR$1,
156
163
  BASE_MONTH: BASE_MONTH$1,
157
164
  BASE_DAY: BASE_DAY$1,
165
+ BASE_VALUE: BASE_VALUE$1,
158
166
  MAX_YEAR: MAX_YEAR$1,
159
167
  MAX_MONTH: MAX_MONTH$1,
160
168
  MAX_DAY: MAX_DAY$1,
169
+ MAX_VALUE: MAX_VALUE$1,
170
+ checkRangeDate: checkRangeDate$1,
161
171
  getMonthDays: getMonthDays$1,
162
172
  getLeapMonth: getLeapMonth,
163
173
  hasLeapMonth: hasLeapMonth,
@@ -176,10 +186,17 @@ var LEAP_YEAR_DAY = 366;
176
186
  var BASE_YEAR = 1890;
177
187
  var BASE_MONTH = 1;
178
188
  var BASE_DAY = 21;
189
+ var BASE_VALUE = BASE_YEAR * 10000 + BASE_MONTH * 100 + BASE_DAY;
179
190
  var MAX_YEAR = 2050;
180
191
  var MAX_MONTH = 1;
181
192
  var MAX_DAY = 22;
193
+ var MAX_VALUE = MAX_YEAR * 10000 + MAX_MONTH * 100 + MAX_DAY;
182
194
  var totalDaysBeforeYear = {};
195
+ var checkRangeDate = function (year, month, day) {
196
+ var value = year * 10000 + month * 100 + day;
197
+ if (value < BASE_VALUE || value > MAX_VALUE)
198
+ return false;
199
+ };
183
200
  var isLeapYear = function (year) {
184
201
  return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
185
202
  };
@@ -218,9 +235,12 @@ var SolarData = {
218
235
  BASE_YEAR: BASE_YEAR,
219
236
  BASE_MONTH: BASE_MONTH,
220
237
  BASE_DAY: BASE_DAY,
238
+ BASE_VALUE: BASE_VALUE,
221
239
  MAX_YEAR: MAX_YEAR,
222
240
  MAX_MONTH: MAX_MONTH,
223
241
  MAX_DAY: MAX_DAY,
242
+ MAX_VALUE: MAX_VALUE,
243
+ checkRangeDate: checkRangeDate,
224
244
  isLeapYear: isLeapYear,
225
245
  getMonthDays: getMonthDays,
226
246
  getYearDays: getYearDays,
@@ -229,6 +249,9 @@ var SolarData = {
229
249
 
230
250
  var SOLAR_LUNAR_DAY_DIFF = 20;
231
251
  var toLunar = function (solYear, solMonth, solDay) {
252
+ if (!SolarData.checkRangeDate(solYear, solMonth, solDay)) {
253
+ 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));
254
+ }
232
255
  var year = LunarData.BASE_YEAR;
233
256
  var month = LunarData.BASE_MONTH;
234
257
  var day = LunarData.BASE_DAY + SolarData.getTotalDays(solYear, solMonth, solDay) - SOLAR_LUNAR_DAY_DIFF - 1;
@@ -261,6 +284,9 @@ var toLunar = function (solYear, solMonth, solDay) {
261
284
  return { year: year, month: month, day: day, isLeapMonth: isLeapMonth };
262
285
  };
263
286
  var toSolar = function (lunYear, lunMonth, lunDay, isLeapMonth) {
287
+ if (!LunarData.checkRangeDate(lunYear, lunMonth, lunDay)) {
288
+ 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));
289
+ }
264
290
  var year = SolarData.BASE_YEAR;
265
291
  var month = SolarData.BASE_MONTH;
266
292
  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;if(u<o||u>e)return!1},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;if(o<j||o>O)return!1},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) => false | undefined;
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) => false | undefined;
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.0",
4
4
  "description": "한국 음력 변환 유틸 / Korean lunar calendar converter",
5
5
  "main": "dist/kor-lunar.js",
6
6
  "module": "dist/kor-lunar.esm.js",