kor-lunar 1.6.0 → 1.6.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
@@ -4,7 +4,7 @@
4
4
  [![NPM Downloads](https://img.shields.io/npm/dm/kor-lunar.svg)](https://www.npmjs.com/package/kor-lunar)
5
5
  [![License](https://img.shields.io/npm/l/kor-lunar.svg)](https://github.com/kahyou22/kor-lunar-js/blob/main/LICENSE)
6
6
 
7
- 이 라이브러리는 학습용으로 제작되었으며, 한국천문연구원(KASI)의 음력·양력 변환 데이터를 기반으로 한 자바스크립트 라이브러리입니다.
7
+ 한국천문연구원(KASI)의 음력·양력 변환 데이터를 기반으로 한 자바스크립트 라이브러리입니다.
8
8
  네트워크 요청 없이 **오프라인에서도 동작**하고, 별도의 외부 의존성이 없습니다.
9
9
 
10
10
  > **⚠️ 주의:** 데이터는 **2025년 5월 20일 기준**으로 갱신되었습니다.
@@ -17,19 +17,20 @@
17
17
  - **LunarCalendar 클래스** — 음력 날짜 연산 객체 (생성, 연산, 비교)
18
18
  - **윤달 처리** — `isLeapMonth` 옵션
19
19
  - **음력 간지 출력** — 세차(`secha`), 월건(`wolgeon`), 일진(`iljin`)
20
- - 윤달인 경우 `wolgeon`은 빈 문자열로 반환됩니다
21
20
  - **TypeScript 지원** — 타입 정의 기본 제공
22
21
  - **Zero Dependencies** — 외부 의존성 없음
23
22
  - **CJS / ESM / UMD** — 다양한 환경에서 사용 가능
24
23
 
25
- - [예제 사이트](https://kahyou22.github.io/kor-lunar-js/)
24
+ [예제 사이트](https://kahyou22.github.io/kor-lunar-js/)
26
25
 
27
26
  ## 지원 날짜 범위
28
27
 
29
- - **toLunar**: `양력 → 음력` 날짜 범위 1890년 1월 21일 ~ 2050년 12월 31일
30
- - **toSolar**: `음력 양력` 날짜 범위 1890년 1월 1일 ~ 2050년 11월 18일
28
+ | 함수 | 범위 |
29
+ | ----------------------- | ---------------------------------- |
30
+ | `toLunar` (양력 → 음력) | 1890년 1월 21일 ~ 2050년 12월 31일 |
31
+ | `toSolar` (음력 → 양력) | 1890년 1월 1일 ~ 2050년 11월 18일 |
31
32
 
32
- _범위를 벗어난 날짜가 입력될 경우 `RangeError`가 발생하며, 오류 메시지에 입력한 날짜 정보가 포함됩니다._
33
+ _범위를 벗어난 날짜가 입력될 경우 `RangeError`가 발생합니다._
33
34
 
34
35
  ## 설치
35
36
 
@@ -43,7 +44,8 @@ npm install kor-lunar
43
44
  <script src="https://cdn.jsdelivr.net/npm/kor-lunar@1.6/dist/kor-lunar.min.js"></script>
44
45
  ```
45
46
 
46
- CDN 사용 시 전역 변수 `korLunar`로 접근할 수 있습니다.
47
+ CDN 사용 시 전역 변수 `korLunar`로 접근할 수 있습니다.
48
+ 예기치 않은 변경을 방지하기 위해 **메이저 버전을 고정**하는 것을 권장합니다.
47
49
 
48
50
  ## 사용법
49
51
 
@@ -61,12 +63,6 @@ Named export도 지원합니다:
61
63
  import { toLunar, toSolar, LunarCalendar } from "kor-lunar";
62
64
  ```
63
65
 
64
- ---
65
-
66
- ## 예제
67
-
68
- [예제 사이트](https://kahyou22.github.io/kor-lunar-js/)
69
-
70
66
  ### 양력 → 음력 (`toLunar`)
71
67
 
72
68
  ```js
@@ -84,23 +80,11 @@ console.log(toLunar(2025, 6, 25));
84
80
  // julianDay: 2460852,
85
81
  // dayOfWeek: 3
86
82
  // }
87
- ```
88
83
 
89
- ### 양력 → 음력 (윤달)
90
-
91
- ```js
84
+ // 윤달인 경우
92
85
  console.log(toLunar(2025, 7, 25));
93
- // {
94
- // year: 2025,
95
- // month: 6,
96
- // day: 1,
97
- // isLeapMonth: true,
98
- // secha: '을사',
99
- // wolgeon: '', // 윤달인 경우 월건은 빈 문자열
100
- // iljin: '을미',
101
- // julianDay: 2460882,
102
- // dayOfWeek: 5
103
- // }
86
+ // { ..., month: 6, isLeapMonth: true, wolgeon: '' }
87
+ // 윤달인 경우 wolgeon은 빈 문자열로 반환됩니다
104
88
  ```
105
89
 
106
90
  ### 음력 → 양력 (`toSolar`)
@@ -115,18 +99,11 @@ console.log(toSolar(2025, 6, 1, true));
115
99
  // { year: 2025, month: 7, day: 25 }
116
100
  ```
117
101
 
118
- > 권장되진 않지만, `korLunar.LunarTable`과 `korLunar.SolarTable` 같은 내부 함수에 직접 접근할 수도 있습니다.
119
- > 이를 통해 단순 음력 변환 뿐만 아니라, 더 다양한 기능을 구현할 수 있습니다.
120
- > [예제 사이트: 음력 달력](https://kahyou22.github.io/kor-lunar-js/#lunarCalendar)
121
-
122
- ---
123
-
124
- ## LunarCalendar
102
+ ### LunarCalendar
125
103
 
126
104
  음력 날짜를 다루기 위한 **불변(immutable) 클래스**입니다.
127
- 날짜 연산, 비교, 변환 등을 지원하며, 모든 변경 메서드는 원본을 수정하지 않고 새 객체를 반환합니다.
128
-
129
- ### 예제
105
+ 날짜 연산, 비교, 변환 등을 지원하며,
106
+ 모든 변경 메서드는 원본을 수정하지 않고 새 객체를 반환합니다.
130
107
 
131
108
  ```js
132
109
  import { LunarCalendar } from "kor-lunar";
@@ -161,35 +138,18 @@ chuseok.equals(chuseok); // true
161
138
  nextDay.diffDays(chuseok); // 1
162
139
  ```
163
140
 
164
- #### addMonths 동작 방식
141
+ > `korLunar.LunarTable`과 `korLunar.SolarTable`을 통해 내부 유틸 함수에 직접 접근할 수도 있습니다.
142
+ > 이를 통해 더 다양한 기능을 구현할 수 있습니다 — [예제: 음력 달력](https://kahyou22.github.io/kor-lunar-js/#lunarCalendar)
165
143
 
166
- - 윤달도 하나의 독립적인 월로 취급합니다
167
- - 대상 월의 일수가 현재 일보다 적으면 마지막 날로 클램핑됩니다
144
+ ## 기여
168
145
 
169
- ```js
170
- // 2025년에는 윤6월이 있음
171
- const june = LunarCalendar.of(2025, 6, 1); // 6월 평달
172
- const leapJune = june.addMonths(1); // 6월 윤달
173
- const july = june.addMonths(2); // 7월 평달
174
-
175
- // day 클램핑: 1월 30일 + 1개월 -> 2월의 마지막 날
176
- const jan30 = LunarCalendar.of(2025, 1, 30);
177
- const feb = jan30.addMonths(1);
178
- feb.day; // 29 (2025년 음력 2월이 29일까지인 경우)
179
- ```
180
-
181
- #### addYears 동작 방식
146
+ 버그 제보, 기능 제안, PR 등 모두 환영합니다.
182
147
 
183
- - 같은 월/일을 유지하려 시도합니다
184
- - 윤달인데 대상 연도에 해당 윤달이 없으면 평달로 폴백합니다
185
- - 대상 월의 일수가 현재 일보다 적으면 마지막 날로 클램핑됩니다
148
+ - 🔍 버그 제보 → [Issues](https://github.com/kahyou22/kor-lunar-js/issues)
149
+ - 💡 기능 제안 [Issues](https://github.com/kahyou22/kor-lunar-js/issues) 또는 [Discussions](https://github.com/kahyou22/kor-lunar-js/discussions)
150
+ - 💬 질문 · 의견 [Discussions](https://github.com/kahyou22/kor-lunar-js/discussions)
186
151
 
187
- ```js
188
- // 윤달 → 대상 연도에 해당 윤달이 없으면 평달로
189
- const leapJune = LunarCalendar.of(2025, 6, 1, true);
190
- const nextYear = leapJune.addYears(1);
191
- nextYear.isLeapMonth; // false (2026년에 윤6월이 없으므로 평달)
192
- ```
152
+ 자유롭게 남겨주세요.
193
153
 
194
154
  ## 라이선스
195
155