과학

원하는 날의 일진을 알려주는 코드를 작성해 봤음

눈길에발자욱 2024. 4. 9. 13:33

 

 

# 천간과 지지
천간 = ['갑', '을', '병', '정', '무', '기', '경', '신', '임', '계']
지지 = ['자', '축', '인', '묘', '진', '사', '오', '미', '신', '유', '술', '해']

# 파이썬 datetime 모듈 import
from datetime import date

# 그레고리력 날짜를 기준으로 60갑자 일진을 계산하는 함수
def 계산_일진(연도, 월, 일):
    # 입력받은 날짜
    입력_날짜 = date(연도, 월, 일)
    # 기준 날짜: 2024년 4월 9일 ('계묘(癸卯)')
    기준_날짜 = date(2024, 4, 9)
    기준_천간 = 9  # '계(癸)'는 천간에서 10번째, 0부터 시작하므로 9
    기준_지지 = 3  # '묘(卯)'는 지지에서 4번째, 0부터 시작하므로 3
    
    # 기준 날짜로부터 입력받은 날짜까지의 일수 차이 계산
    일수_차이 = (입력_날짜 - 기준_날짜).days

    # 일수 차이를 통해 천간과 지지 계산
    천간_인덱스 = (기준_천간 + 일수_차이) % 10
    지지_인덱스 = (기준_지지 + 일수_차이) % 12

    # 계산된 천간과 지지로 일진 도출
    일진 = 천간[천간_인덱스] + 지지[지지_인덱스]

    return 일진

# 사용자 입력 받기
연도 = int(input("연도를 입력하세요: "))
월 = int(input("월을 입력하세요: "))
일 = int(input("일을 입력하세요: "))

# 계산된 일진 출력
print(f"{연도}년 {월}월 {일}일의 일진: {계산_일진(연도, 월, 일)}")

 

 

 

 

 

 

 

 

 

 

 

 

 

 

코딩 초보가 만들어서 오류가 있을 수 있으니 너무 이거 결과에만 확신을 가지면 안 됨

 

반응형