Skip to content
winenyPublic

About

제왕절개·이사 날짜처럼 후보가 수십 개일 때, 하나씩 보지 않고 점수로 줄 세우는 사주 계산기. 절기를 한국 표준시로 보정해 오차를 잡았다. CLI / Claude Code 스킬.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

saju — 날짜를 고를 때 쓰는 사주 계산기

제왕절개 날짜, 이사 날짜처럼 후보가 수십 개일 때 하나씩 보지 않고 구간을 통째로 계산해 점수로 줄 세운다. 만세력·절기·십신은 전부 엔진이 계산하고 사람은 결과만 본다.

[1위] 2028-03-21(화) 11:39~13:38  —  71점
  · 오행 다섯 기운이 모두 있음
  · 일간 을(목) — 중화 (44%)

날짜별 최고점
  2028-03-07(화)  60.1점 ███████████████
  2028-03-09(목)  65.5점 ████████████████
  2028-03-14(화)    54점 ██████████████
  2028-03-16(목)  57.2점 ██████████████
  2028-03-21(화)    71점 ██████████████████  ← 1위
  2028-03-23(목)  65.7점 ████████████████
  2028-03-28(화)  68.7점 █████████████████
  2028-03-30(목)  58.2점 ███████████████
npx github:wineny/saju taegil --from 2028-03-06 --to 2028-03-31 --dow 화목 --hours 09:00-16:00

Node.js만 있으면 된다. 설치 없이 바로 실행된다. 자주 쓸 거면 npm i -g github:wineny/saju 한 번 해두면 다음부터 saju로 짧게 쓴다.


먼저 내 사주부터

날짜를 고를 게 아니어도, 생년월일시 하나로 명식이 어떻게 나오는지 볼 수 있다.

npx github:wineny/saju chart --born 1988-03-15T07:30 --city 서울
사주 명식 — 1988-03-15T07:30  (서울, 진태양시 -41분 보정 (경도 -32분 + 균시차 -9분))
  년주 戊辰(무진)   월주 乙卯(을묘)   일주 己巳(기사)   시주 丁卯(정묘)
  오행    목 3.4 / 화 2.0 / 토 3.4 / 금 0.4 / 수 0.4
  일간    기(토) — 약간 신강 56%

태어난 시각을 모르면 날짜만 줘도 된다 (--born 1988-03-15). 시주만 빠진다.

Claude Code / Codex 스킬로 설치하면 "내 사주 봐줘", "택일 해줘"로 부를 수 있다 — 설치 참고.


왜 만들었나

제왕절개 날짜를 고르다가 만들었다. 후보가 수십 개인데 하나씩 봐주는 도구가 없어서, 구간을 통째로 계산해 줄 세우는 걸 만들었다. 만들다 보니 명식·궁합도 같이 나왔다.

만들면서 절기 시각이 한 시간 어긋나 있는 걸 발견했다. 이 도구가 정확도에 유난히 신경 쓰는 이유이기도 하다 — 아래에 적어뒀다.

정확도 — 절기는 북경시로 계산된다, 시간은 진태양시로 보정한다 (펼치기)

⚠️ 절기는 북경시로 계산된다 — 이걸 안 고치면 사주가 틀린다

사주 라이브러리로 널리 쓰이는 lunar-javascript는 중국 라이브러리라 절기 시각을 북경시(UTC+8)로 계산한다. 한국 표준시(UTC+9)와 한 시간 차이다.

절기 라이브러리 한국천문연구원 (KST)
2027 입춘 02-04 09:46 02-04 10:46
2027 우수 02-19 05:33 02-19 06:33

년주와 월주는 절기를 기준으로 바뀐다. 보정하지 않으면 2027-02-04 09:47~10:46에 태어난 사람은 여덟 글자 중 네 글자가 통째로 틀린다.

2027-02-04 10:46 → 丙午년 辛丑월   (입춘 전)
2027-02-04 10:47 → 丁未년 壬寅월   (입춘 후)

이 저장소는 년·월주를 뽑을 때 KST에서 60분을 빼 북경시로 환산해 넣는다. 위 전환 시각이 한국천문연구원 값과 일치하는 것을 확인했다.

lunar-javascript를 쓰는 다른 도구를 쓰고 있다면, 절기 경계 근처 생일로 한 번 확인해 보길 권한다.

시간을 다루는 방식

항목 기준 이유
년주·월주 표준시(북경시 환산) 절기는 천문 현상이라 그 순간이 지구 어디서나 같다
일주·시주 진태양시(경도 + 균시차) 지역의 실제 태양 위치가 기준이다

월주 경계는 절(節) 이다 — 입춘·경칩·청명 같은 것. 우수·춘분·곡우 같은 중기(中氣)는 월주와 무관하다.

한국 표준시는 동경 135° 기준인데 서울은 126.978°다. 그만큼 시계가 태양보다 앞선다.

경도 보정(분) = (경도 − 135) × 4        서울 → −32분

여기에 균시차(Equation of Time) 를 더한다. 지구 궤도가 타원이고 자전축이 기울어 있어 태양의 남중 시각이 계절마다 흔들리는데, 연중 −14 ~ +16분 을 오간다. 경도 보정만 하고 이걸 빼먹으면 시주 경계가 최대 16분 어긋난다.

2월 중순  균시차 −14.5분  →  서울 총 보정 −46.6분
4월 초    균시차  −4.0분  →  서울 총 보정 −36.0분

그래서 이 도구가 알려주는 시각 구간은 09:46~11:45 같은 어중간한 값이다. 그게 정상이다.

--city 부산 처럼 도시를 주거나 --lon으로 경도를 직접 줄 수 있다. --no-solar-time으로 보정을 끄면 다른 만세력과 대조할 수 있다.


설치

CLI로 바로 쓰려면 설치가 필요 없다 — 맨 위 예시처럼 npx github:wineny/saju .... Node.js만 있으면 된다. npm 설치 없음 — 만세력 엔진(lunar-javascript, MIT)이 저장소에 동봉돼 있다.

자주 쓸 거면 한 번만 전역 설치해 둔다.

npm i -g github:wineny/saju
saju chart --born 1988-03-15T07:30

Claude Code / Codex 스킬로 쓰려면 저장소를 내려받아 스킬 폴더로 복사한다.

git clone https://github.com/wineny/saju.git
cd saju
bash install.sh        # ~/.claude/skills/saju 로 복사

그러면 Claude Code에서 /saju 또는 "내 사주 좀 봐줘", "택일 해줘" 로 부를 수 있다.

쓰는 법

사주 보기

saju chart --born 1988-03-15T07:30 --city 서울
  년주 戊辰(무진)   월주 乙卯(을묘)   일주 己巳(기사)   시주 丁卯(정묘)
  오행    목 3.4 / 화 2.0 / 토 3.4 / 금 0.4 / 수 0.4
  일간    기(토) — 약간 신강 56%
  일주    기사 — 십이운성 제왕 · 납음 대림목

  십신
    년주  천간 겁재         지지 겁재·편관·편재
    ...
  관계
    ⚠ 년월 해 진묘

  절기  경칩 1988-03-05 17:46 KST 이후 출생 (월주 기준)

태어난 시각을 모르면 날짜만 줘도 된다(--born 1988-03-15). 그러면 시주는 계산하지 않는다.

궁합

saju match --a 1988-03-15T07:30 --b 1986-11-02 --labels 나,상대

일간 관계(합·생·극·충), 일지 관계(육합·충·원진·해), 오행 보완, 십신을 보고 점수를 낸다.

택일

saju taegil --from 2028-03-06 --to 2028-03-31 \
            --dow 화목 --hours 09:00-16:00 \
            --mother 1988-03-15T07:30 --father 1986-11-02

구간의 모든 날짜 × 모든 시각을 계산해 점수순으로 줄 세운다. 부모 생년월일시를 주면 궁합 10점이 채점에 들어간다.

같은 사주가 나오는 시각은 하나로 묶어 구간으로 보여준다. 예약 시각을 잡을 때 그 구간을 그대로 말하면 된다.

[1위] 2028-03-21(화) 11:39~13:38  —  69.4점
  사주   戊申(무신)  乙卯(을묘)  乙巳(을사)  壬午(임오)
  오행   목 3.0 / 화 2.0 / 토 2.2 / 금 1.4 / 수 1.4
  점수   오행균형 19.7 · 일간중화 13.6 · 형충파해 16.4 · 합 1.8 · 십신균형 4 · 일주 5.5 · 상생흐름 3 · 부모궁합 5.5
  · 오행 다섯 기운이 모두 있음
  · 일간 을(목) — 중화 (44%)
  · ⚠ 년월 원진 신묘, 년일 파 신사, 월시 파 묘오
옵션 설명
--hours 09:00-16:00 가능한 시각대
--dow 월수금 가능한 요일
--weekdays 주말 제외
--exclude 2028-03-14,2028-03-16 특정 날짜 제외
--step 30 스캔 간격(분). 구간 경계는 어차피 1분 단위로 정밀화된다
--top 15 상세 출력 개수

모든 명령에 --json을 붙이면 JSON으로 나온다.


채점 기준

점수는 상대 비교값이다. 90점과 85점의 차이는 의미 없고, 90점대와 60점대의 차이를 보면 된다.

항목 배점
오행 균형 28
형·충·파·해 20
일간 중화 14
일주 (십이운성) 10
합 7
상생 흐름 7
십신 균형 4
(선택) 부모·상대 궁합 10

가중치와 근거는 전부 references/scoring.md에 적어뒀다. 마음에 안 들면 고쳐 쓰라고 문서로 분리해 뒀다.

이 도구가 일부러 안 보는 것도 적어뒀다 — 신살, 용신 판정, 그리고 띠(년지) 궁합. 띠 궁합은 같은 해에 태어나는 사람이 전부 같은 점수를 받으므로 날짜를 고르는 데 변별력이 0이다.

한계

  • 명리는 검증된 예측 체계가 아니다. 유파마다 기준이 갈리고, 같은 명식을 놓고 정반대 해석이 나오기도 한다. 이 도구는 "덜 치우친 명식 고르기"에 쓰라고 만든 것이지 길흉 판정기가 아니다.
  • 야자시(23시 이후)를 다루지 않는다. 다음 날로 넘길지가 유파마다 다르다.
  • 서머타임과 옛 표준시를 자동으로 잡지 않는다. 한국은 19481960년과 **19871988년**에 서머타임을 썼고, 1954-03-21~1961-08-09 에는 표준시가 동경 127.5°(UTC+8:30)였다. 이 기간에 태어났다면 시계 시각을 손으로 되돌린 뒤 넣어야 시주가 맞는다.
  • 출산 택일이라면 산모와 태아의 의학적 안전이 언제나 우선한다. 가능한 주수 범위를 주치의에게 먼저 확인하고, 그 안에서 고르는 용도로만 쓸 것.
  • 수명·중병·사고 같은 건 애초에 판정하지 않는다.

라이선스

MIT. 만세력 엔진은 lunar-javascript (MIT)를 동봉했다 — vendor/.

About

제왕절개·이사 날짜처럼 후보가 수십 개일 때, 하나씩 보지 않고 점수로 줄 세우는 사주 계산기. 절기를 한국 표준시로 보정해 오차를 잡았다. CLI / Claude Code 스킬.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages