쎄하다 로고

60갑자 순환과 달력 변환

천간 10 × 지지 12 → 60주기! 연·월·일·시 변환 공식을 확인하세요.

Ⅳ. 운명 코드 ― 천간·지지·60갑자

3. 60갑자 순환과 달력 변환

60갑자(甲子~癸亥)천간·지지 최소공배로 만들어진 시간 좌표계입니다. 연·월·일·시 모두 이 60주기로 표현할 수 있습니다.

3‑① 순환 메커니즘

  • 천간 10개를 번호 0~9, 지지 12개를 0~11로 두고 같은 순서로 1칸씩 전진 → 60쌍 후 다시 甲子(0,0) 귀환.
  • 수학식 : n번째 갑자 = (n mod 10, n mod 12)
  • 기준점 : 서기 1984‑02‑04 입춘 00:00 = 甲子 시작.

3‑② 60갑자 미니 표 (1~30)

#갑자음독오행음/양
1甲子갑자木·水양·양
2乙丑을축木·土음·음
30癸巳계사水·火음·음

전체 60표는 부록 PDF 다운로드.

3‑③ 서기 날짜 → 갑자 3‑단계 변환

  1. 절기 보정 : 생일이 입춘 전이면 전년도로 간주.
  2. 기준 연도 차이 계산 : Δ = 목표연도 − 1984.
  3. 모듈로 매핑
    천간 = (Δ mod 10), 지지 = (Δ mod 12)index = (Δ mod 60) + 1.

*1984 = 甲子 1번.  예) 2025 → Δ = 41 → index = 42 = 乙巳(을사).

3‑④ JS 예시 코드 (연도 변환)

// ES Modules
const stems = ['갑','을','병','정','무','기','경','신','임','계'];
const branches = ['자','축','인','묘','진','사','오','미','신','유','술','해'];

export function solarYearToGanji(year, afterIpchun=true){
  let y = year - 1984 + (afterIpchun ? 0 : -1);
  const stem = stems[(y % 10 + 10) % 10];
  const branch = branches[(y % 12 + 12) % 12];
  return `${stem}${branch}`;
}
// console.log(solarYearToGanji(2025)); // 을사

쎄하다 API v1 엔드포인트 /ganzhi?date=YYYY-MM-DD로 동일 결과 반환.

3‑⑤ 응용 예시

  • 콘텐츠 마케팅 : “甲子 픽” 스페셜 에디션— 60주기 회귀 연도에 상품 출시.
  • HR 채용 : 지원자 생년 갑자 분포 통계로 팀 세대 간 다이나믹 분석.
  • UX 캘린더 : 양력·음력·갑자 3중 캘린더 위젯으로 절기·길일 한눈에 표시.

다음 학습: Ⅳ‑4 은장간·12운성·장생 도해