육십갑자 구하는 공식

Wed, Mar 19 2025 10:25:00 KST

육십갑자(六十甲子)는 10개의 천간(天干)과 12개의 지지(地支)를 순서대로 조합하여 만든 60개의 간지(干支)를 말합니다. 육십갑자를 계산하는 방법은 다음과 같습니다.

1. 천간(天干) 계산

서기 연도에서 4를 뺀 후 10으로 나눈 나머지를 구합니다. 나머지에 해당하는 천간을 표에서 찾습니다.

나머지 천간
0 갑(甲)
1 을(乙)
2 병(丙)
3 정(丁)
4 무(戊)
5 기(己)
6 경(庚)
7 신(辛)
8 임(壬)
9 계(癸)

2. 지지(地支) 계산

서기 연도에서 4를 뺀 후 12로 나눈 나머지를 구합니다. 나머지에 해당하는 지지를 표에서 찾습니다.

나머지 지지
0 자(子)
1 축(丑)
2 인(寅)
3 묘(卯)
4 진(辰)
5 사(巳)
6 오(午)
7 미(未)
8 신(申)
9 유(酉)
10 술(戌)
11 해(亥)

3. 육십갑자 조합

1단계에서 구한 천간과 2단계에서 구한 지지를 순서대로 조합합니다.

예시: 2025년 육십갑자 계산

천간: 2025에서 4를 빼고 10으로 나눈 나머지는 1이므로 천간은 을(乙)입니다.
지지: 2025에서 4를 빼고 12로 나눈 나머지는 5이므로 지지는 사(巳)입니다.
조합: 2025년의 육십갑자는 을사(乙巳)입니다.
이러한 방식으로 원하는 해의 육십갑자를 구할 수 있습니다.

Ruby 소스코드

아래는 육십갑자를 계산하는 루비 언어로 작성된 소스 코드입니다. 이 코드는 사용자가 입력한 연도를 기준으로 천간과 지지를 계산하여 육십갑자를 출력합니다.

# 육십갑자 계산기
def calc_ganzhi(year)
  # 천간(天干) 배열
  stems = ["갑甲", "을乙", "병丙", "정丁", "무戊",
           "기己", "경庚", "신辛", "임壬", "계癸"]

  # 지지(地支) 배열
  branches = ["자子", "축丑", "인寅", "묘卯", "진辰", "사巳",
              "오午", "미未", "신申", "유酉", "술戌", "해亥"]

  # 천간 계산
  i = (year - 4) % 10

  # 지지 계산
  j = (year - 4) % 12

  # 결과 반환
  "#{stems[i][0]}#{branches[j][0]}(#{stems[i][1]}#{branches[j][1]})"
end

# 사용자로부터 연도를 입력받아 출력
print "연도를 입력하세요: "
year = gets.chomp.to_i

# 결과 출력
puts "#{year}년의 육십갑자는 #{calc_ganzhi(year)}입니다."

# 출력 결과
# 연도를 입력하세요: 2025
# 2025년의 육십갑자는 을사(乙巳)입니다.