@gracefullight/saju 0.7.0 → 1.0.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.en.md CHANGED
@@ -75,7 +75,8 @@ const birthDateTime = DateTime.fromObject(
75
75
  );
76
76
 
77
77
  // getSaju: Calculate pillars, ten gods, strength, relations, yongshen, solar terms, major luck, yearly luck all at once
78
- const result = getSaju(adapter, birthDateTime, {
78
+ const result = getSaju(birthDateTime, {
79
+ adapter,
79
80
  gender: "male", // Required: needed for major luck calculation
80
81
  // longitudeDeg: 126.9778, // Optional: uses timezone-based longitude if omitted
81
82
  // preset: STANDARD_PRESET, // Optional: defaults to STANDARD_PRESET
@@ -106,7 +107,7 @@ const birthDateTime = DateTime.fromObject(
106
107
  { zone: "Asia/Seoul" }
107
108
  );
108
109
 
109
- const result = getFourPillars(adapter, birthDateTime);
110
+ const result = getFourPillars(birthDateTime, { adapter });
110
111
 
111
112
  console.log(result);
112
113
  ```
@@ -128,13 +129,15 @@ const dt = DateTime.fromObject(
128
129
  );
129
130
 
130
131
  // Standard Preset: Midnight (00:00) day boundary, no solar time correction
131
- const resultStandard = getFourPillars(adapter, dt, {
132
+ const resultStandard = getFourPillars(dt, {
133
+ adapter,
132
134
  longitudeDeg: 126.9778,
133
135
  preset: STANDARD_PRESET,
134
136
  });
135
137
 
136
138
  // Traditional Preset: Zi hour (23:00) day boundary, with solar time correction
137
- const resultTraditional = getFourPillars(adapter, dt, {
139
+ const resultTraditional = getFourPillars(dt, {
140
+ adapter,
138
141
  longitudeDeg: 126.9778,
139
142
  preset: TRADITIONAL_PRESET,
140
143
  });
@@ -153,7 +156,8 @@ const dt = {
153
156
  timeZone: "Asia/Seoul",
154
157
  };
155
158
 
156
- const result = getFourPillars(adapter, dt, {
159
+ const result = getFourPillars(dt, {
160
+ adapter,
157
161
  longitudeDeg: 126.9778,
158
162
  preset: STANDARD_PRESET,
159
163
  });
@@ -225,16 +229,16 @@ Traditional interpretation with Zi hour (23:00) day boundary and solar time corr
225
229
 
226
230
  ### Core Functions
227
231
 
228
- #### `getSaju(adapter, datetime, options)`
232
+ #### `getSaju(datetime, options)`
229
233
 
230
234
  Calculate all saju analysis results (pillars, ten gods, strength, relations, yongshen, solar terms, major luck, yearly luck) at once.
231
235
 
232
236
  ```typescript
233
237
  function getSaju<T>(
234
- adapter: DateAdapter<T>,
235
238
  dtLocal: T,
236
239
  options: {
237
- longitudeDeg: number;
240
+ adapter: DateAdapter<T>;
241
+ longitudeDeg?: number;
238
242
  gender: "male" | "female"; // Required
239
243
  tzOffsetHours?: number;
240
244
  preset?: typeof STANDARD_PRESET;
@@ -244,16 +248,16 @@ function getSaju<T>(
244
248
  ): SajuResult;
245
249
  ```
246
250
 
247
- #### `getFourPillars(adapter, datetime, options)`
251
+ #### `getFourPillars(datetime, options)`
248
252
 
249
253
  Calculate all four pillars (year, month, day, hour).
250
254
 
251
255
  ```typescript
252
256
  function getFourPillars<T>(
253
- adapter: DateAdapter<T>,
254
257
  datetime: T,
255
258
  options: {
256
- longitudeDeg: number;
259
+ adapter: DateAdapter<T>;
260
+ longitudeDeg?: number;
257
261
  preset?: {
258
262
  dayBoundary: "midnight" | "zi23";
259
263
  useMeanSolarTimeForHour: boolean;
@@ -282,23 +286,23 @@ function getFourPillars<T>(
282
286
  ```
283
287
 
284
288
  **Parameters:**
285
- - `adapter`: DateAdapter instance
286
289
  - `datetime`: Date/time object in the adapter's format
287
290
  - `options`:
288
- - `longitudeDeg`: Geographic longitude in degrees (e.g., Seoul: 126.9778)
291
+ - `adapter`: DateAdapter instance
292
+ - `longitudeDeg`: Geographic longitude in degrees (e.g., Seoul: 126.9778), optional
289
293
  - `preset`: Configuration preset (use `STANDARD_PRESET` or `TRADITIONAL_PRESET`)
290
294
  - `tzOffsetHours`: Optional timezone offset in hours (default: 9 for KST)
291
295
 
292
296
  **Returns:** Object with year, month, day, hour pillars, lunar date, and metadata
293
297
 
294
- #### `yearPillar(adapter, datetime)`
298
+ #### `yearPillar(datetime, options)`
295
299
 
296
300
  Calculate only the year pillar based on Lichun (立春, Start of Spring).
297
301
 
298
302
  ```typescript
299
303
  function yearPillar<T>(
300
- adapter: DateAdapter<T>,
301
- datetime: T
304
+ datetime: T,
305
+ options: { adapter: DateAdapter<T> }
302
306
  ): {
303
307
  idx60: number;
304
308
  pillar: string;
@@ -306,14 +310,14 @@ function yearPillar<T>(
306
310
  }
307
311
  ```
308
312
 
309
- #### `monthPillar(adapter, datetime)`
313
+ #### `monthPillar(datetime, options)`
310
314
 
311
315
  Calculate only the month pillar based on solar longitude.
312
316
 
313
317
  ```typescript
314
318
  function monthPillar<T>(
315
- adapter: DateAdapter<T>,
316
- datetime: T
319
+ datetime: T,
320
+ options: { adapter: DateAdapter<T> }
317
321
  ): {
318
322
  pillar: string;
319
323
  sunLonDeg: number;
@@ -387,15 +391,15 @@ const solar = getSolarDate(1999, 11, 25, false);
387
391
  // { year: 2000, month: 1, day: 1 }
388
392
  ```
389
393
 
390
- #### `hourPillar(adapter, datetime, options)`
394
+ #### `hourPillar(datetime, options)`
391
395
 
392
396
  Calculate only the hour pillar with optional solar time correction.
393
397
 
394
398
  ```typescript
395
399
  function hourPillar<T>(
396
- adapter: DateAdapter<T>,
397
400
  datetime: T,
398
- options?: {
401
+ options: {
402
+ adapter: DateAdapter<T>;
399
403
  longitudeDeg?: number;
400
404
  tzOffsetHours?: number;
401
405
  useMeanSolarTimeForHour?: boolean;
@@ -436,15 +440,15 @@ function applyMeanSolarTime<T>(
436
440
  ): T
437
441
  ```
438
442
 
439
- #### `effectiveDayDate(adapter, dtLocal, options)`
443
+ #### `effectiveDayDate(dtLocal, options)`
440
444
 
441
445
  Calculate the effective date considering day boundary rules.
442
446
 
443
447
  ```typescript
444
448
  function effectiveDayDate<T>(
445
- adapter: DateAdapter<T>,
446
449
  dtLocal: T,
447
450
  options: {
451
+ adapter: DateAdapter<T>;
448
452
  dayBoundary?: "midnight" | "zi23";
449
453
  longitudeDeg?: number;
450
454
  tzOffsetHours?: number;
@@ -498,17 +502,17 @@ function analyzeRelations(
498
502
  ): RelationsResult;
499
503
  ```
500
504
 
501
- #### `calculateMajorLuck(adapter, datetime, gender, year, month)`
505
+ #### `calculateMajorLuck(birthDateTime, gender, yearPillar, monthPillar, options)`
502
506
 
503
507
  Calculates major luck periods and starting age.
504
508
 
505
509
  ```typescript
506
510
  function calculateMajorLuck<T>(
507
- adapter: DateAdapter<T>,
508
511
  birthDateTime: T,
509
512
  gender: "male" | "female",
510
513
  yearPillar: string,
511
- monthPillar: string
514
+ monthPillar: string,
515
+ options: { adapter: DateAdapter<T>; longitudeDeg?: number; tzOffsetHours?: number }
512
516
  ): MajorLuckResult;
513
517
  ```
514
518
 
@@ -525,14 +529,14 @@ function analyzeYongShen(
525
529
  ): YongShenResult;
526
530
  ```
527
531
 
528
- #### `analyzeSolarTerms(adapter, datetime)`
532
+ #### `analyzeSolarTerms(datetime, options)`
529
533
 
530
534
  Calculates current and next solar term info with elapsed days.
531
535
 
532
536
  ```typescript
533
537
  function analyzeSolarTerms<T>(
534
- adapter: DateAdapter<T>,
535
- dtLocal: T
538
+ dtLocal: T,
539
+ options: { adapter: DateAdapter<T> }
536
540
  ): SolarTermInfo;
537
541
  ```
538
542
 
@@ -548,15 +552,14 @@ function analyzeSolarTerms<T>(
548
552
  }
549
553
  ```
550
554
 
551
- #### `getSolarTermsForYear(adapter, year, timezone)`
555
+ #### `getSolarTermsForYear(year, options)`
552
556
 
553
557
  Calculates all 24 solar terms for a specific year.
554
558
 
555
559
  ```typescript
556
560
  function getSolarTermsForYear<T>(
557
- adapter: DateAdapter<T>,
558
561
  year: number,
559
- timezone: string
562
+ options: { adapter: DateAdapter<T>; timezone: string }
560
563
  ): Array<{ term: SolarTerm; date: {...} }>;
561
564
  ```
562
565
 
@@ -592,12 +595,14 @@ console.log(solarTime.hour); // ~11.47 (11:28)
592
595
  - Zi hour (子時) straddles midnight (23:00-01:00)
593
596
 
594
597
  ```typescript
595
- const result1 = getFourPillars(adapter, dt, {
598
+ const result1 = getFourPillars(dt, {
599
+ adapter,
596
600
  longitudeDeg: 126.9778,
597
601
  preset: { ...STANDARD_PRESET, dayBoundary: "midnight" },
598
602
  });
599
603
 
600
- const result2 = getFourPillars(adapter, dt, {
604
+ const result2 = getFourPillars(dt, {
605
+ adapter,
601
606
  longitudeDeg: 126.9778,
602
607
  preset: { ...STANDARD_PRESET, dayBoundary: "zi23" },
603
608
  });
@@ -614,7 +619,8 @@ const customConfig = {
614
619
  useMeanSolarTimeForBoundary: false, // Local time for day boundary
615
620
  };
616
621
 
617
- const result = getFourPillars(adapter, dt, {
622
+ const result = getFourPillars(dt, {
623
+ adapter,
618
624
  longitudeDeg: 126.9778,
619
625
  preset: customConfig,
620
626
  });
@@ -637,7 +643,8 @@ Common city longitudes for reference:
637
643
  ### Major and Yearly Luck Calculation
638
644
 
639
645
  ```typescript
640
- const saju = getSaju(adapter, dt, {
646
+ const saju = getSaju(dt, {
647
+ adapter,
641
648
  longitudeDeg: 126.9778,
642
649
  gender: "female",
643
650
  yearlyLuckRange: { from: 2024, to: 2030 }
@@ -656,7 +663,8 @@ saju.yearlyLuck.forEach(luck => {
656
663
  ### Solar Terms Info
657
664
 
658
665
  ```typescript
659
- const saju = getSaju(adapter, dt, {
666
+ const saju = getSaju(dt, {
667
+ adapter,
660
668
  longitudeDeg: 126.9778,
661
669
  gender: "male",
662
670
  });
@@ -727,7 +735,8 @@ const nyTime = DateTime.fromObject(
727
735
  { zone: "America/New_York" }
728
736
  );
729
737
 
730
- const result = getFourPillars(adapter, nyTime, {
738
+ const result = getFourPillars(nyTime, {
739
+ adapter,
731
740
  longitudeDeg: -74.0060, // NYC longitude
732
741
  tzOffsetHours: -5, // EST offset
733
742
  preset: TRADITIONAL_PRESET,
@@ -740,11 +749,11 @@ const result = getFourPillars(adapter, nyTime, {
740
749
  import { yearPillar, monthPillar, dayPillarFromDate, hourPillar } from "@gracefullight/saju";
741
750
 
742
751
  // Year pillar
743
- const year = yearPillar(adapter, dt);
752
+ const year = yearPillar(dt, { adapter });
744
753
  console.log(year.pillar, year.solarYear);
745
754
 
746
755
  // Month pillar
747
- const month = monthPillar(adapter, dt);
756
+ const month = monthPillar(dt, { adapter });
748
757
  console.log(month.pillar, month.sunLonDeg);
749
758
 
750
759
  // Day pillar (no adapter needed)
@@ -752,7 +761,8 @@ const day = dayPillarFromDate({ year: 1985, month: 5, day: 15 });
752
761
  console.log(day.pillar);
753
762
 
754
763
  // Hour pillar with solar time
755
- const hour = hourPillar(adapter, dt, {
764
+ const hour = hourPillar(dt, {
765
+ adapter,
756
766
  longitudeDeg: 126.9778,
757
767
  useMeanSolarTimeForHour: true,
758
768
  });
@@ -774,7 +784,8 @@ const results = birthDates.map((birth) => {
774
784
  const dt = DateTime.fromObject(birth, { zone: "Asia/Seoul" });
775
785
  return {
776
786
  birth,
777
- pillars: getFourPillars(adapter, dt, {
787
+ pillars: getFourPillars(dt, {
788
+ adapter,
778
789
  longitudeDeg: 126.9778,
779
790
  preset: STANDARD_PRESET,
780
791
  }),
package/README.md CHANGED
@@ -75,7 +75,8 @@ const birthDateTime = DateTime.fromObject(
75
75
  );
76
76
 
77
77
  // getSaju: 사주 팔자, 십신, 신강약, 합충, 용신, 절기, 대운, 세운을 한 번에 계산
78
- const result = getSaju(adapter, birthDateTime, {
78
+ const result = getSaju(birthDateTime, {
79
+ adapter,
79
80
  gender: "male", // 필수: 대운 계산에 필요
80
81
  // longitudeDeg: 126.9778, // 선택: 생략 시 타임존 기준 경도 사용
81
82
  // preset: STANDARD_PRESET, // 선택: 기본값은 STANDARD_PRESET
@@ -106,7 +107,7 @@ const birthDateTime = DateTime.fromObject(
106
107
  { zone: "Asia/Seoul" }
107
108
  );
108
109
 
109
- const result = getFourPillars(adapter, birthDateTime);
110
+ const result = getFourPillars(birthDateTime, { adapter });
110
111
 
111
112
  console.log(result);
112
113
  ```
@@ -128,13 +129,15 @@ const dt = DateTime.fromObject(
128
129
  );
129
130
 
130
131
  // 표준 프리셋: 자정(00:00) 날짜 경계, 태양시 보정 없음
131
- const resultStandard = getFourPillars(adapter, dt, {
132
+ const resultStandard = getFourPillars(dt, {
133
+ adapter,
132
134
  longitudeDeg: 126.9778,
133
135
  preset: STANDARD_PRESET,
134
136
  });
135
137
 
136
138
  // 전통 프리셋: 자시(23:00) 날짜 경계, 태양시 보정 사용
137
- const resultTraditional = getFourPillars(adapter, dt, {
139
+ const resultTraditional = getFourPillars(dt, {
140
+ adapter,
138
141
  longitudeDeg: 126.9778,
139
142
  preset: TRADITIONAL_PRESET,
140
143
  });
@@ -153,7 +156,8 @@ const dt = {
153
156
  timeZone: "Asia/Seoul",
154
157
  };
155
158
 
156
- const result = getFourPillars(adapter, dt, {
159
+ const result = getFourPillars(dt, {
160
+ adapter,
157
161
  longitudeDeg: 126.9778,
158
162
  preset: STANDARD_PRESET,
159
163
  });
@@ -225,16 +229,16 @@ const myAdapter: DateAdapter<MyDateType> = {
225
229
 
226
230
  ### 핵심 함수
227
231
 
228
- #### `getSaju(adapter, datetime, options)`
232
+ #### `getSaju(datetime, options)`
229
233
 
230
234
  사주 분석의 모든 결과(팔자, 십신, 신강약, 합충, 용신, 대운)를 한 번에 계산합니다.
231
235
 
232
236
  ```typescript
233
237
  function getSaju<T>(
234
- adapter: DateAdapter<T>,
235
238
  dtLocal: T,
236
239
  options: {
237
- longitudeDeg: number;
240
+ adapter: DateAdapter<T>;
241
+ longitudeDeg?: number;
238
242
  gender: "male" | "female"; // 필수
239
243
  tzOffsetHours?: number;
240
244
  preset?: typeof STANDARD_PRESET;
@@ -244,16 +248,16 @@ function getSaju<T>(
244
248
  ): SajuResult;
245
249
  ```
246
250
 
247
- #### `getFourPillars(adapter, datetime, options)`
251
+ #### `getFourPillars(datetime, options)`
248
252
 
249
253
  네 기둥(연주, 월주, 일주, 시주) 모두 계산
250
254
 
251
255
  ```typescript
252
256
  function getFourPillars<T>(
253
- adapter: DateAdapter<T>,
254
257
  datetime: T,
255
258
  options: {
256
- longitudeDeg: number;
259
+ adapter: DateAdapter<T>;
260
+ longitudeDeg?: number;
257
261
  preset?: {
258
262
  dayBoundary: "midnight" | "zi23";
259
263
  useMeanSolarTimeForHour: boolean;
@@ -282,23 +286,23 @@ function getFourPillars<T>(
282
286
  ```
283
287
 
284
288
  **매개변수:**
285
- - `adapter`: DateAdapter 인스턴스
286
289
  - `datetime`: 어댑터 형식의 날짜/시간 객체
287
290
  - `options`:
288
- - `longitudeDeg`: 지리적 경도(도 단위) (예: 서울 126.9778)
291
+ - `adapter`: DateAdapter 인스턴스
292
+ - `longitudeDeg`: 지리적 경도(도 단위) (예: 서울 126.9778), 선택사항
289
293
  - `preset`: 설정 프리셋 (`STANDARD_PRESET` 또는 `TRADITIONAL_PRESET` 사용)
290
294
  - `tzOffsetHours`: 타임존 오프셋(시간 단위), 선택사항 (기본값: 9, KST)
291
295
 
292
296
  **반환값:** 연월일시 기둥, 음력 날짜, 메타데이터를 포함한 객체
293
297
 
294
- #### `yearPillar(adapter, datetime)`
298
+ #### `yearPillar(datetime, options)`
295
299
 
296
300
  입춘(立春, 봄의 시작) 기준으로 연주만 계산
297
301
 
298
302
  ```typescript
299
303
  function yearPillar<T>(
300
- adapter: DateAdapter<T>,
301
- datetime: T
304
+ datetime: T,
305
+ options: { adapter: DateAdapter<T> }
302
306
  ): {
303
307
  idx60: number;
304
308
  pillar: string;
@@ -306,14 +310,14 @@ function yearPillar<T>(
306
310
  }
307
311
  ```
308
312
 
309
- #### `monthPillar(adapter, datetime)`
313
+ #### `monthPillar(datetime, options)`
310
314
 
311
315
  태양 황경 기준으로 월주만 계산
312
316
 
313
317
  ```typescript
314
318
  function monthPillar<T>(
315
- adapter: DateAdapter<T>,
316
- datetime: T
319
+ datetime: T,
320
+ options: { adapter: DateAdapter<T> }
317
321
  ): {
318
322
  pillar: string;
319
323
  sunLonDeg: number;
@@ -387,15 +391,15 @@ const solar = getSolarDate(1999, 11, 25, false);
387
391
  // { year: 2000, month: 1, day: 1 }
388
392
  ```
389
393
 
390
- #### `hourPillar(adapter, datetime, options)`
394
+ #### `hourPillar(datetime, options)`
391
395
 
392
396
  태양시 보정 옵션과 함께 시주만 계산
393
397
 
394
398
  ```typescript
395
399
  function hourPillar<T>(
396
- adapter: DateAdapter<T>,
397
400
  datetime: T,
398
- options?: {
401
+ options: {
402
+ adapter: DateAdapter<T>;
399
403
  longitudeDeg?: number;
400
404
  tzOffsetHours?: number;
401
405
  useMeanSolarTimeForHour?: boolean;
@@ -436,15 +440,15 @@ function applyMeanSolarTime<T>(
436
440
  ): T
437
441
  ```
438
442
 
439
- #### `effectiveDayDate(adapter, dtLocal, options)`
443
+ #### `effectiveDayDate(dtLocal, options)`
440
444
 
441
445
  날짜 경계 규칙을 고려한 유효 날짜 계산
442
446
 
443
447
  ```typescript
444
448
  function effectiveDayDate<T>(
445
- adapter: DateAdapter<T>,
446
449
  dtLocal: T,
447
450
  options: {
451
+ adapter: DateAdapter<T>;
448
452
  dayBoundary?: "midnight" | "zi23";
449
453
  longitudeDeg?: number;
450
454
  tzOffsetHours?: number;
@@ -498,17 +502,17 @@ function analyzeRelations(
498
502
  ): RelationsResult;
499
503
  ```
500
504
 
501
- #### `calculateMajorLuck(adapter, datetime, gender, year, month)`
505
+ #### `calculateMajorLuck(birthDateTime, gender, yearPillar, monthPillar, options)`
502
506
 
503
507
  대운의 흐름과 시작 연령을 계산합니다.
504
508
 
505
509
  ```typescript
506
510
  function calculateMajorLuck<T>(
507
- adapter: DateAdapter<T>,
508
511
  birthDateTime: T,
509
512
  gender: "male" | "female",
510
513
  yearPillar: string,
511
- monthPillar: string
514
+ monthPillar: string,
515
+ options: { adapter: DateAdapter<T>; longitudeDeg?: number; tzOffsetHours?: number }
512
516
  ): MajorLuckResult;
513
517
  ```
514
518
 
@@ -525,14 +529,14 @@ function analyzeYongShen(
525
529
  ): YongShenResult;
526
530
  ```
527
531
 
528
- #### `analyzeSolarTerms(adapter, datetime)`
532
+ #### `analyzeSolarTerms(datetime, options)`
529
533
 
530
534
  현재 및 다음 절기 정보와 경과일을 계산합니다.
531
535
 
532
536
  ```typescript
533
537
  function analyzeSolarTerms<T>(
534
- adapter: DateAdapter<T>,
535
- dtLocal: T
538
+ dtLocal: T,
539
+ options: { adapter: DateAdapter<T> }
536
540
  ): SolarTermInfo;
537
541
  ```
538
542
 
@@ -548,15 +552,14 @@ function analyzeSolarTerms<T>(
548
552
  }
549
553
  ```
550
554
 
551
- #### `getSolarTermsForYear(adapter, year, timezone)`
555
+ #### `getSolarTermsForYear(year, options)`
552
556
 
553
557
  특정 연도의 24절기 날짜를 모두 계산합니다.
554
558
 
555
559
  ```typescript
556
560
  function getSolarTermsForYear<T>(
557
- adapter: DateAdapter<T>,
558
561
  year: number,
559
- timezone: string
562
+ options: { adapter: DateAdapter<T>; timezone: string }
560
563
  ): Array<{ term: SolarTerm; date: {...} }>;
561
564
  ```
562
565
 
@@ -592,12 +595,14 @@ console.log(solarTime.hour); // ~11.47 (11:28)
592
595
  - 자시(子時)가 자정을 걸침 (23:00-01:00)
593
596
 
594
597
  ```typescript
595
- const result1 = getFourPillars(adapter, dt, {
598
+ const result1 = getFourPillars(dt, {
599
+ adapter,
596
600
  longitudeDeg: 126.9778,
597
601
  preset: { ...STANDARD_PRESET, dayBoundary: "midnight" },
598
602
  });
599
603
 
600
- const result2 = getFourPillars(adapter, dt, {
604
+ const result2 = getFourPillars(dt, {
605
+ adapter,
601
606
  longitudeDeg: 126.9778,
602
607
  preset: { ...STANDARD_PRESET, dayBoundary: "zi23" },
603
608
  });
@@ -614,7 +619,8 @@ const customConfig = {
614
619
  useMeanSolarTimeForBoundary: false, // 날짜 경계는 현지 시간 사용
615
620
  };
616
621
 
617
- const result = getFourPillars(adapter, dt, {
622
+ const result = getFourPillars(dt, {
623
+ adapter,
618
624
  longitudeDeg: 126.9778,
619
625
  preset: customConfig,
620
626
  });
@@ -637,7 +643,8 @@ const result = getFourPillars(adapter, dt, {
637
643
  ### 대운과 세운 계산
638
644
 
639
645
  ```typescript
640
- const saju = getSaju(adapter, dt, {
646
+ const saju = getSaju(dt, {
647
+ adapter,
641
648
  longitudeDeg: 126.9778,
642
649
  gender: "female",
643
650
  yearlyLuckRange: { from: 2024, to: 2030 }
@@ -656,7 +663,8 @@ saju.yearlyLuck.forEach(luck => {
656
663
  ### 절기 정보 확인
657
664
 
658
665
  ```typescript
659
- const saju = getSaju(adapter, dt, {
666
+ const saju = getSaju(dt, {
667
+ adapter,
660
668
  longitudeDeg: 126.9778,
661
669
  gender: "male",
662
670
  });
@@ -727,7 +735,8 @@ const nyTime = DateTime.fromObject(
727
735
  { zone: "America/New_York" }
728
736
  );
729
737
 
730
- const result = getFourPillars(adapter, nyTime, {
738
+ const result = getFourPillars(nyTime, {
739
+ adapter,
731
740
  longitudeDeg: -74.0060, // 뉴욕 경도
732
741
  tzOffsetHours: -5, // EST 오프셋
733
742
  preset: TRADITIONAL_PRESET,
@@ -740,11 +749,11 @@ const result = getFourPillars(adapter, nyTime, {
740
749
  import { yearPillar, monthPillar, dayPillarFromDate, hourPillar } from "@gracefullight/saju";
741
750
 
742
751
  // 연주
743
- const year = yearPillar(adapter, dt);
752
+ const year = yearPillar(dt, { adapter });
744
753
  console.log(year.pillar, year.solarYear);
745
754
 
746
755
  // 월주
747
- const month = monthPillar(adapter, dt);
756
+ const month = monthPillar(dt, { adapter });
748
757
  console.log(month.pillar, month.sunLonDeg);
749
758
 
750
759
  // 일주 (어댑터 불필요)
@@ -752,7 +761,8 @@ const day = dayPillarFromDate({ year: 1985, month: 5, day: 15 });
752
761
  console.log(day.pillar);
753
762
 
754
763
  // 태양시를 사용한 시주
755
- const hour = hourPillar(adapter, dt, {
764
+ const hour = hourPillar(dt, {
765
+ adapter,
756
766
  longitudeDeg: 126.9778,
757
767
  useMeanSolarTimeForHour: true,
758
768
  });
@@ -774,7 +784,8 @@ const results = birthDates.map((birth) => {
774
784
  const dt = DateTime.fromObject(birth, { zone: "Asia/Seoul" });
775
785
  return {
776
786
  birth,
777
- pillars: getFourPillars(adapter, dt, {
787
+ pillars: getFourPillars(dt, {
788
+ adapter,
778
789
  longitudeDeg: 126.9778,
779
790
  preset: STANDARD_PRESET,
780
791
  }),