kor-lunar 1.3.0 → 1.3.2

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
@@ -40,7 +40,7 @@ const korLunar = require("kor-lunar");
40
40
  ### 브라우저 CDN
41
41
 
42
42
  ```html
43
- <script src="https://cdn.jsdelivr.net/npm/kor-lunar@1.3.0/dist/kor-lunar.min.js"></script>
43
+ <script src="https://cdn.jsdelivr.net/npm/kor-lunar@1.3.2/dist/kor-lunar.min.js"></script>
44
44
  ```
45
45
 
46
46
  ## 예제
@@ -59,7 +59,9 @@ console.log(korLunar.toLunar(2025, 6, 25));
59
59
  // isLeapMonth: false,
60
60
  // secha: '을사',
61
61
  // wolgeon: '계미',
62
- // iljin: '을축'
62
+ // iljin: '을축',
63
+ // julianDay: 2460852,
64
+ // dayOfWeek: 3
63
65
  // }
64
66
 
65
67
  console.log(korLunar.toLunar(2025, 7, 25));
@@ -70,7 +72,9 @@ console.log(korLunar.toLunar(2025, 7, 25));
70
72
  // isLeapMonth: true,
71
73
  // secha: '을사',
72
74
  // wolgeon: '', // 윤달인 경우 월건은 빈 문자열
73
- // iljin: '을미'
75
+ // iljin: '을미',
76
+ // julianDay: 2460882,
77
+ // dayOfWeek: 5
74
78
  // }
75
79
 
76
80
  // 음력 → 양력
@@ -1,3 +1,9 @@
1
+ var toInt = function (num) {
2
+ if (typeof num === "string" || typeof num === "number")
3
+ return ~~num;
4
+ return num;
5
+ };
6
+
1
7
  /**
2
8
  * 음력 테이블
3
9
  *
@@ -42,6 +48,7 @@ var SMALL_MONTH_DAY = 29;
42
48
  var BIG_MONTH_DAY = 30;
43
49
  var totalDaysBeforeYear$1 = {};
44
50
  var getYearData = function (year) {
51
+ year = toInt(year);
45
52
  return LUN_TABLE[year - BASE_YEAR$1];
46
53
  };
47
54
  /**
@@ -51,6 +58,7 @@ var getYearData = function (year) {
51
58
  * @returns 월의 일 수 (29 또는 30)
52
59
  */
53
60
  var getMonthDays$1 = function (year, month) {
61
+ month = toInt(month);
54
62
  var monthType = (getYearData(year) >> (month - 1)) & 0x1;
55
63
  return monthType === 0 ? SMALL_MONTH_DAY : BIG_MONTH_DAY;
56
64
  };
@@ -77,6 +85,7 @@ var hasLeapMonth = function (year) {
77
85
  * @returns 윤달이면 true
78
86
  */
79
87
  var isLeapMonth = function (year, month) {
88
+ month = toInt(month);
80
89
  return month === getLeapMonth(year);
81
90
  };
82
91
  /**
@@ -113,6 +122,7 @@ for (var y$1 = BASE_YEAR$1 + 1; y$1 <= MAX_YEAR$1; y$1++) {
113
122
  * @return 해당 연도 전까지의 누적 일 수
114
123
  */
115
124
  var getTotalDaysBeforeYear$1 = function (year) {
125
+ year = toInt(year);
116
126
  var days = totalDaysBeforeYear$1[year];
117
127
  return days;
118
128
  };
@@ -124,6 +134,7 @@ var getTotalDaysBeforeYear$1 = function (year) {
124
134
  * @returns 해당 연도 내, 해당 월 전까지의 누적 일 수
125
135
  */
126
136
  var getTotalDaysBeforeMonth$1 = function (year, month, isLeapMonth) {
137
+ month = toInt(month);
127
138
  var days = 0;
128
139
  // 해당 월 전까지 윤달을 포함하여 누적
129
140
  for (var m = 1; m < month; m++) {
@@ -148,20 +159,25 @@ var getTotalDaysBeforeMonth$1 = function (year, month, isLeapMonth) {
148
159
  * @returns 총 누적 일 수
149
160
  */
150
161
  var getTotalDays$1 = function (year, month, day, isLeapMonth) {
162
+ day = toInt(day);
151
163
  var days = getTotalDaysBeforeYear$1(year) + getTotalDaysBeforeMonth$1(year, month, isLeapMonth) + day;
152
164
  return days;
153
165
  };
154
166
  var getSecha = function (year) {
167
+ year = toInt(year);
155
168
  var g = gan[(year + 6) % gan.length];
156
169
  var j = ji[(year + 8) % ji.length];
157
170
  return g + j;
158
171
  };
159
172
  var getWolgeon = function (year, month) {
173
+ year = toInt(year);
174
+ month = toInt(month);
160
175
  var g = gan[(year * 2 + month + 3) % gan.length];
161
176
  var j = ji[(month + 1) % ji.length];
162
177
  return g + j;
163
178
  };
164
179
  var getIljinByJulianDay = function (julianDay) {
180
+ julianDay = toInt(julianDay);
165
181
  var g = gan[(julianDay - 1) % gan.length];
166
182
  var j = ji[(julianDay + 1) % ji.length];
167
183
  return g + j;
@@ -176,6 +192,9 @@ var getIljin = function (year, month, day, isLeapMonth) {
176
192
  * @returns 날짜가 범위 내에 있으면 true
177
193
  */
178
194
  var isDateInRange$1 = function (year, month, day) {
195
+ year = toInt(year);
196
+ month = toInt(month);
197
+ day = toInt(day);
179
198
  var value = year * 10000 + month * 100 + day;
180
199
  return value >= BASE_VALUE$1 && value <= MAX_VALUE$1;
181
200
  };
@@ -184,6 +203,9 @@ var isDateInRange$1 = function (year, month, day) {
184
203
  * @returns 유효한 날짜이면 true
185
204
  */
186
205
  var isValidDate$1 = function (year, month, day, isLeapMonth) {
206
+ year = toInt(year);
207
+ month = toInt(month);
208
+ day = toInt(day);
187
209
  if (year < BASE_YEAR$1 || year > MAX_YEAR$1)
188
210
  return false;
189
211
  if (year === BASE_YEAR$1) {
@@ -245,10 +267,12 @@ var MAX_DAY = 22;
245
267
  var MAX_VALUE = MAX_YEAR * 10000 + MAX_MONTH * 100 + MAX_DAY;
246
268
  var totalDaysBeforeYear = {};
247
269
  var isLeapYear = function (year) {
270
+ year = toInt(year);
248
271
  return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
249
272
  };
250
273
  var getMonthDays = function (year, month) {
251
- var day = month == 2 && isLeapYear(year) ? LEAP_FEBRUARY_DAY : MONTH_DAYS[month - 1];
274
+ month = toInt(month);
275
+ var day = month === 2 && isLeapYear(year) ? LEAP_FEBRUARY_DAY : MONTH_DAYS[month - 1];
252
276
  return day;
253
277
  };
254
278
  var getYearDays = function (year) {
@@ -264,6 +288,7 @@ for (var y = BASE_YEAR + 1; y <= MAX_YEAR; y++) {
264
288
  totalDaysBeforeYear[y] = totalDaysBeforeYear[y - 1] + getYearDays(y - 1);
265
289
  }
266
290
  var getTotalDaysBeforeYear = function (year) {
291
+ year = toInt(year);
267
292
  var day = totalDaysBeforeYear[year];
268
293
  return day;
269
294
  };
@@ -284,6 +309,9 @@ var getTotalDays = function (year, month, day) {
284
309
  * @returns 날짜가 범위 내에 있으면 true
285
310
  */
286
311
  var isDateInRange = function (year, month, day) {
312
+ year = toInt(year);
313
+ month = toInt(month);
314
+ day = toInt(day);
287
315
  var value = year * 10000 + month * 100 + day;
288
316
  return value >= BASE_VALUE && value <= MAX_VALUE;
289
317
  };
@@ -292,6 +320,9 @@ var isDateInRange = function (year, month, day) {
292
320
  * @returns 유효한 날짜이면 true
293
321
  */
294
322
  var isValidDate = function (year, month, day) {
323
+ year = toInt(year);
324
+ month = toInt(month);
325
+ day = toInt(day);
295
326
  if (year < BASE_YEAR || year > MAX_YEAR)
296
327
  return false;
297
328
  if (year === BASE_YEAR) {
@@ -333,6 +364,9 @@ var SolarData = {
333
364
  var SOLAR_LUNAR_DAY_DIFF = 20;
334
365
  var JULIAN_DAY_DIFF = 2411389;
335
366
  var toLunar = function (solYear, solMonth, solDay) {
367
+ solYear = toInt(solYear);
368
+ solMonth = toInt(solMonth);
369
+ solDay = toInt(solDay);
336
370
  if (!SolarData.isDateInRange(solYear, solMonth, solDay)) {
337
371
  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));
338
372
  }
@@ -380,6 +414,9 @@ var toLunar = function (solYear, solMonth, solDay) {
380
414
  };
381
415
  };
382
416
  var toSolar = function (lunYear, lunMonth, lunDay, isLeapMonth) {
417
+ lunYear = toInt(lunYear);
418
+ lunMonth = toInt(lunMonth);
419
+ lunDay = toInt(lunDay);
383
420
  if (!LunarData.isDateInRange(lunYear, lunMonth, lunDay)) {
384
421
  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));
385
422
  }
@@ -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
@@ -2,6 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var toInt = function (num) {
6
+ if (typeof num === "string" || typeof num === "number")
7
+ return ~~num;
8
+ return num;
9
+ };
10
+
5
11
  /**
6
12
  * 음력 테이블
7
13
  *
@@ -46,6 +52,7 @@ var SMALL_MONTH_DAY = 29;
46
52
  var BIG_MONTH_DAY = 30;
47
53
  var totalDaysBeforeYear$1 = {};
48
54
  var getYearData = function (year) {
55
+ year = toInt(year);
49
56
  return LUN_TABLE[year - BASE_YEAR$1];
50
57
  };
51
58
  /**
@@ -55,6 +62,7 @@ var getYearData = function (year) {
55
62
  * @returns 월의 일 수 (29 또는 30)
56
63
  */
57
64
  var getMonthDays$1 = function (year, month) {
65
+ month = toInt(month);
58
66
  var monthType = (getYearData(year) >> (month - 1)) & 0x1;
59
67
  return monthType === 0 ? SMALL_MONTH_DAY : BIG_MONTH_DAY;
60
68
  };
@@ -81,6 +89,7 @@ var hasLeapMonth = function (year) {
81
89
  * @returns 윤달이면 true
82
90
  */
83
91
  var isLeapMonth = function (year, month) {
92
+ month = toInt(month);
84
93
  return month === getLeapMonth(year);
85
94
  };
86
95
  /**
@@ -117,6 +126,7 @@ for (var y$1 = BASE_YEAR$1 + 1; y$1 <= MAX_YEAR$1; y$1++) {
117
126
  * @return 해당 연도 전까지의 누적 일 수
118
127
  */
119
128
  var getTotalDaysBeforeYear$1 = function (year) {
129
+ year = toInt(year);
120
130
  var days = totalDaysBeforeYear$1[year];
121
131
  return days;
122
132
  };
@@ -128,6 +138,7 @@ var getTotalDaysBeforeYear$1 = function (year) {
128
138
  * @returns 해당 연도 내, 해당 월 전까지의 누적 일 수
129
139
  */
130
140
  var getTotalDaysBeforeMonth$1 = function (year, month, isLeapMonth) {
141
+ month = toInt(month);
131
142
  var days = 0;
132
143
  // 해당 월 전까지 윤달을 포함하여 누적
133
144
  for (var m = 1; m < month; m++) {
@@ -152,20 +163,25 @@ var getTotalDaysBeforeMonth$1 = function (year, month, isLeapMonth) {
152
163
  * @returns 총 누적 일 수
153
164
  */
154
165
  var getTotalDays$1 = function (year, month, day, isLeapMonth) {
166
+ day = toInt(day);
155
167
  var days = getTotalDaysBeforeYear$1(year) + getTotalDaysBeforeMonth$1(year, month, isLeapMonth) + day;
156
168
  return days;
157
169
  };
158
170
  var getSecha = function (year) {
171
+ year = toInt(year);
159
172
  var g = gan[(year + 6) % gan.length];
160
173
  var j = ji[(year + 8) % ji.length];
161
174
  return g + j;
162
175
  };
163
176
  var getWolgeon = function (year, month) {
177
+ year = toInt(year);
178
+ month = toInt(month);
164
179
  var g = gan[(year * 2 + month + 3) % gan.length];
165
180
  var j = ji[(month + 1) % ji.length];
166
181
  return g + j;
167
182
  };
168
183
  var getIljinByJulianDay = function (julianDay) {
184
+ julianDay = toInt(julianDay);
169
185
  var g = gan[(julianDay - 1) % gan.length];
170
186
  var j = ji[(julianDay + 1) % ji.length];
171
187
  return g + j;
@@ -180,6 +196,9 @@ var getIljin = function (year, month, day, isLeapMonth) {
180
196
  * @returns 날짜가 범위 내에 있으면 true
181
197
  */
182
198
  var isDateInRange$1 = function (year, month, day) {
199
+ year = toInt(year);
200
+ month = toInt(month);
201
+ day = toInt(day);
183
202
  var value = year * 10000 + month * 100 + day;
184
203
  return value >= BASE_VALUE$1 && value <= MAX_VALUE$1;
185
204
  };
@@ -188,6 +207,9 @@ var isDateInRange$1 = function (year, month, day) {
188
207
  * @returns 유효한 날짜이면 true
189
208
  */
190
209
  var isValidDate$1 = function (year, month, day, isLeapMonth) {
210
+ year = toInt(year);
211
+ month = toInt(month);
212
+ day = toInt(day);
191
213
  if (year < BASE_YEAR$1 || year > MAX_YEAR$1)
192
214
  return false;
193
215
  if (year === BASE_YEAR$1) {
@@ -249,10 +271,12 @@ var MAX_DAY = 22;
249
271
  var MAX_VALUE = MAX_YEAR * 10000 + MAX_MONTH * 100 + MAX_DAY;
250
272
  var totalDaysBeforeYear = {};
251
273
  var isLeapYear = function (year) {
274
+ year = toInt(year);
252
275
  return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
253
276
  };
254
277
  var getMonthDays = function (year, month) {
255
- var day = month == 2 && isLeapYear(year) ? LEAP_FEBRUARY_DAY : MONTH_DAYS[month - 1];
278
+ month = toInt(month);
279
+ var day = month === 2 && isLeapYear(year) ? LEAP_FEBRUARY_DAY : MONTH_DAYS[month - 1];
256
280
  return day;
257
281
  };
258
282
  var getYearDays = function (year) {
@@ -268,6 +292,7 @@ for (var y = BASE_YEAR + 1; y <= MAX_YEAR; y++) {
268
292
  totalDaysBeforeYear[y] = totalDaysBeforeYear[y - 1] + getYearDays(y - 1);
269
293
  }
270
294
  var getTotalDaysBeforeYear = function (year) {
295
+ year = toInt(year);
271
296
  var day = totalDaysBeforeYear[year];
272
297
  return day;
273
298
  };
@@ -288,6 +313,9 @@ var getTotalDays = function (year, month, day) {
288
313
  * @returns 날짜가 범위 내에 있으면 true
289
314
  */
290
315
  var isDateInRange = function (year, month, day) {
316
+ year = toInt(year);
317
+ month = toInt(month);
318
+ day = toInt(day);
291
319
  var value = year * 10000 + month * 100 + day;
292
320
  return value >= BASE_VALUE && value <= MAX_VALUE;
293
321
  };
@@ -296,6 +324,9 @@ var isDateInRange = function (year, month, day) {
296
324
  * @returns 유효한 날짜이면 true
297
325
  */
298
326
  var isValidDate = function (year, month, day) {
327
+ year = toInt(year);
328
+ month = toInt(month);
329
+ day = toInt(day);
299
330
  if (year < BASE_YEAR || year > MAX_YEAR)
300
331
  return false;
301
332
  if (year === BASE_YEAR) {
@@ -337,6 +368,9 @@ var SolarData = {
337
368
  var SOLAR_LUNAR_DAY_DIFF = 20;
338
369
  var JULIAN_DAY_DIFF = 2411389;
339
370
  var toLunar = function (solYear, solMonth, solDay) {
371
+ solYear = toInt(solYear);
372
+ solMonth = toInt(solMonth);
373
+ solDay = toInt(solDay);
340
374
  if (!SolarData.isDateInRange(solYear, solMonth, solDay)) {
341
375
  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));
342
376
  }
@@ -384,6 +418,9 @@ var toLunar = function (solYear, solMonth, solDay) {
384
418
  };
385
419
  };
386
420
  var toSolar = function (lunYear, lunMonth, lunDay, isLeapMonth) {
421
+ lunYear = toInt(lunYear);
422
+ lunMonth = toInt(lunMonth);
423
+ lunDay = toInt(lunDay);
387
424
  if (!LunarData.isDateInRange(lunYear, lunMonth, lunDay)) {
388
425
  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));
389
426
  }
@@ -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(t){"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],r=["갑","을","병","정","무","기","경","신","임","계"],e=["자","축","인","묘","진","사","오","미","신","유","술","해"],a=1890,o=18900101,u=2049,i=20491229,f={},g=function(t){return n[t-a]},c=function(t,n){return 0===(g(t)>>n-1&1)?29:30},D=function(t){return g(t)>>12&15},A=function(t,n){return n===D(t)},s=function(t,n){return A(t,n)?0===(g(t)>>16&1)?29:30:0},l=function(t){return g(t)>>17&511};f[1890]=0;for(var y=1891;y<=u;y++)f[y]=f[y-1]+l(y-1);var M=function(t){return f[t]},h=function(t,n,r){for(var e=0,a=1;a<n;a++)e+=c(t,a),a===D(t)&&(e+=s(t,a));var o=D(t);return r&&o===n&&(e+=c(t,n)),e},E=function(t,n,r,e){return M(t)+h(t,n,e)+r},_=function(t){return r[(t-1)%r.length]+e[(t+1)%e.length]},S={BASE_YEAR:a,BASE_MONTH:1,BASE_DAY:1,BASE_VALUE:o,MAX_YEAR:u,MAX_MONTH:12,MAX_DAY:29,MAX_VALUE:i,getMonthDays:c,getLeapMonth:D,hasLeapMonth:function(t){return 0!==D(t)},isLeapMonth:A,getLeapMonthDays:s,getYearDays:l,getTotalDaysBeforeYear:M,getTotalDaysBeforeMonth:h,getTotalDays:E,getSecha:function(t){return r[(t+6)%r.length]+e[(t+8)%e.length]},getWolgeon:function(t,n){return r[(2*t+n+3)%r.length]+e[(n+1)%e.length]},getIljin:function(t,n,r,e){var a=E(t,n,r,e);return _(a-1)},getIljinByJulianDay:_,isDateInRange:function(t,n,r){var e=1e4*t+100*n+r;return e>=o&&e<=i},isValidDate:function(t,n,r,e){if(t<a||t>u)return!1;if(t===a){if(n<1)return!1;if(1===n&&r<1)return!1}if(t===u){if(n>12)return!1;if(12===n&&r>29)return!1}return!(n<1||n>12)&&(!(r<1)&&r<=(e?s(t,n):c(t,n)))}},Y=[31,28,31,30,31,30,31,31,30,31,30,31],v=1890,B=18900121,L=2050,R=20500122,T={},p=function(t){return t%4==0&&t%100!=0||t%400==0},d=function(t,n){return 2==n&&p(t)?29:Y[n-1]},O=function(t){return p(t)?366:365};T[1890]=0;for(var X=1891;X<=L;X++)T[X]=T[X-1]+O(X-1);var I={BASE_YEAR:v,BASE_MONTH:1,BASE_DAY:21,BASE_VALUE:B,MAX_YEAR:L,MAX_MONTH:1,MAX_DAY:22,MAX_VALUE:R,isLeapYear:p,getMonthDays:d,getYearDays:O,getTotalDays:function(t,n,r){var e=function(t){return T[t]}(t)+function(t,n){for(var r=0,e=1;e<n;e++)r+=d(t,e);return r}(t,n)+r;return e},isDateInRange:function(t,n,r){var e=1e4*t+100*n+r;return e>=B&&e<=R},isValidDate:function(t,n,r){if(t<v||t>L)return!1;if(t===v){if(n<1)return!1;if(1===n&&r<21)return!1}if(t===L){if(n>1)return!1;if(1===n&&r>22)return!1}return!(n<1||n>12)&&(!(r<1)&&r<=d(t,n))}},j=function(t,n,r){if(!I.isDateInRange(t,n,r))throw new RangeError("지원되지 않는 날짜입니다. 입력한 날짜: ".concat(t,"-").concat(n,"-").concat(r));for(var e=S.BASE_YEAR,a=S.BASE_MONTH,o=S.BASE_DAY+I.getTotalDays(t,n,r)-20-1,u=2411389+o-1,i=(o+1)%7,f=S.getYearDays(e);o>f;)e++,o-=f,f=S.getYearDays(e);for(var g=!1,c=S.getLeapMonth(e),D=S.getMonthDays(e,a);o>D;)o-=D,g=!1,a!==c?(++a>12&&(a=1,e++,c=S.getLeapMonth(e)),D=S.getMonthDays(e,a)):(c=0,D=S.getLeapMonthDays(e,a),g=!0);return{year:e,month:a,day:o,isLeapMonth:g,secha:S.getSecha(e),wolgeon:g?"":S.getWolgeon(e,a),iljin:S.getIljinByJulianDay(u),julianDay:u,dayOfWeek:i}},H=function(t,n,r,e){if(!S.isDateInRange(t,n,r))throw new RangeError("지원되지 않는 날짜입니다. 입력한 날짜: ".concat(t,"-").concat(n,"-").concat(r));for(var a=I.BASE_YEAR,o=I.BASE_MONTH,u=I.BASE_DAY+S.getTotalDays(t,n,r,e)-1,i=I.getYearDays(a);u>i;)u-=i,a++,i=I.getYearDays(a);for(var f=I.getMonthDays(a,o);u>f;)u-=f,++o>12&&(o=1,a++),f=I.getMonthDays(a,o);return{year:a,month:o,day:u}},N={toLunar:j,toSolar:H,LunarData:S,SolarData:I};return t.LunarData=S,t.SolarData=I,t.default=N,t.toLunar=j,t.toSolar=H,Object.defineProperty(t,"__esModule",{value:!0}),t}({});
1
+ var korLunar=function(t){"use strict";var n=function(t){return"string"==typeof t||"number"==typeof t?~~t:t},r=[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],e=["갑","을","병","정","무","기","경","신","임","계"],a=["자","축","인","묘","진","사","오","미","신","유","술","해"],o=1890,u=18900101,i=2049,f=20491229,g={},c=function(t){return t=n(t),r[t-o]},D=function(t,r){return r=n(r),0===(c(t)>>r-1&1)?29:30},A=function(t){return c(t)>>12&15},s=function(t,r){return(r=n(r))===A(t)},y=function(t,n){return s(t,n)?0===(c(t)>>16&1)?29:30:0},l=function(t){return c(t)>>17&511};g[1890]=0;for(var M=1891;M<=i;M++)g[M]=g[M-1]+l(M-1);var h=function(t){return t=n(t),g[t]},E=function(t,r,e){r=n(r);for(var a=0,o=1;o<r;o++)a+=D(t,o),o===A(t)&&(a+=y(t,o));var u=A(t);return e&&u===r&&(a+=D(t,r)),a},_=function(t,r,e,a){return e=n(e),h(t)+E(t,r,a)+e},S=function(t){return t=n(t),e[(t-1)%e.length]+a[(t+1)%a.length]},Y={BASE_YEAR:o,BASE_MONTH:1,BASE_DAY:1,BASE_VALUE:u,MAX_YEAR:i,MAX_MONTH:12,MAX_DAY:29,MAX_VALUE:f,getMonthDays:D,getLeapMonth:A,hasLeapMonth:function(t){return 0!==A(t)},isLeapMonth:s,getLeapMonthDays:y,getYearDays:l,getTotalDaysBeforeYear:h,getTotalDaysBeforeMonth:E,getTotalDays:_,getSecha:function(t){return t=n(t),e[(t+6)%e.length]+a[(t+8)%a.length]},getWolgeon:function(t,r){return t=n(t),r=n(r),e[(2*t+r+3)%e.length]+a[(r+1)%a.length]},getIljin:function(t,n,r,e){var a=_(t,n,r,e);return S(a-1)},getIljinByJulianDay:S,isDateInRange:function(t,r,e){var a=1e4*(t=n(t))+100*(r=n(r))+(e=n(e));return a>=u&&a<=f},isValidDate:function(t,r,e,a){if(t=n(t),r=n(r),e=n(e),t<o||t>i)return!1;if(t===o){if(r<1)return!1;if(1===r&&e<1)return!1}if(t===i){if(r>12)return!1;if(12===r&&e>29)return!1}return!(r<1||r>12)&&(!(e<1)&&e<=(a?y(t,r):D(t,r)))}},v=[31,28,31,30,31,30,31,31,30,31,30,31],B=1890,L=18900121,p=2050,R=20500122,T={},d=function(t){return(t=n(t))%4==0&&t%100!=0||t%400==0},O=function(t,r){return 2===(r=n(r))&&d(t)?29:v[r-1]},X=function(t){return d(t)?366:365};T[1890]=0;for(var I=1891;I<=p;I++)T[I]=T[I-1]+X(I-1);var j={BASE_YEAR:B,BASE_MONTH:1,BASE_DAY:21,BASE_VALUE:L,MAX_YEAR:p,MAX_MONTH:1,MAX_DAY:22,MAX_VALUE:R,isLeapYear:d,getMonthDays:O,getYearDays:X,getTotalDays:function(t,r,e){var a=function(t){return t=n(t),T[t]}(t)+function(t,n){for(var r=0,e=1;e<n;e++)r+=O(t,e);return r}(t,r)+e;return a},isDateInRange:function(t,r,e){var a=1e4*(t=n(t))+100*(r=n(r))+(e=n(e));return a>=L&&a<=R},isValidDate:function(t,r,e){if(t=n(t),r=n(r),e=n(e),t<B||t>p)return!1;if(t===B){if(r<1)return!1;if(1===r&&e<21)return!1}if(t===p){if(r>1)return!1;if(1===r&&e>22)return!1}return!(r<1||r>12)&&(!(e<1)&&e<=O(t,r))}},H=function(t,r,e){if(t=n(t),r=n(r),e=n(e),!j.isDateInRange(t,r,e))throw new RangeError("지원되지 않는 날짜입니다. 입력한 날짜: ".concat(t,"-").concat(r,"-").concat(e));for(var a=Y.BASE_YEAR,o=Y.BASE_MONTH,u=Y.BASE_DAY+j.getTotalDays(t,r,e)-20-1,i=2411389+u-1,f=(u+1)%7,g=Y.getYearDays(a);u>g;)a++,u-=g,g=Y.getYearDays(a);for(var c=!1,D=Y.getLeapMonth(a),A=Y.getMonthDays(a,o);u>A;)u-=A,c=!1,o!==D?(++o>12&&(o=1,a++,D=Y.getLeapMonth(a)),A=Y.getMonthDays(a,o)):(D=0,A=Y.getLeapMonthDays(a,o),c=!0);return{year:a,month:o,day:u,isLeapMonth:c,secha:Y.getSecha(a),wolgeon:c?"":Y.getWolgeon(a,o),iljin:Y.getIljinByJulianDay(i),julianDay:i,dayOfWeek:f}},N=function(t,r,e,a){if(t=n(t),r=n(r),e=n(e),!Y.isDateInRange(t,r,e))throw new RangeError("지원되지 않는 날짜입니다. 입력한 날짜: ".concat(t,"-").concat(r,"-").concat(e));for(var o=j.BASE_YEAR,u=j.BASE_MONTH,i=j.BASE_DAY+Y.getTotalDays(t,r,e,a)-1,f=j.getYearDays(o);i>f;)i-=f,o++,f=j.getYearDays(o);for(var g=j.getMonthDays(o,u);i>g;)i-=g,++u>12&&(u=1,o++),g=j.getMonthDays(o,u);return{year:o,month:u,day:i}},V={toLunar:H,toSolar:N,LunarData:Y,SolarData:j};return t.LunarData=Y,t.SolarData=j,t.default=V,t.toLunar=H,t.toSolar=N,Object.defineProperty(t,"__esModule",{value:!0}),t}({});
2
2
  //# sourceMappingURL=kor-lunar.min.js.map
@@ -0,0 +1 @@
1
+ export declare const toInt: (num: string | number) => number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kor-lunar",
3
- "version": "1.3.0",
3
+ "version": "1.3.2",
4
4
  "description": "한국 음력 변환 유틸 / Korean lunar calendar converter",
5
5
  "main": "dist/kor-lunar.js",
6
6
  "module": "dist/kor-lunar.esm.js",