Pythonで生年月日を与えると干支がわかるコードをGPT4に書いてもらった

日記

占いをやっていると、プログラムを書いておけば楽だなぁ~と思うことがあります。

四柱推命も、生年月日を与えたときに、干支がどうなるか、というものを自動で計算するサイトやアプリもあり、まぁ自分でエクセルでも頑張ればできるはずです。

そこでふとひらめきました。

そうだ!GPT4に書いてもらおう!

その結果が以下の通りです。

# 干支のリストを作成
zodiac = ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"]

# 生年月日を入力
year = int(input("西暦で生まれた年を入力してください: "))
month = int(input("生まれた月を入力してください: "))
day = int(input("生まれた日を入力してください: "))

# 年干支の計算
# 4で割った余りが0の年は亥年、1の年は子年、2の年は丑年、3の年は寅年となる
remainder = year % 4
index = remainder * 3 - 1
year_zodiac = zodiac[index]

# 月干支の計算
# 1月は丑月、2月は寅月、...、12月は子月となる
index = (month + 1) % 12
month_zodiac = zodiac[index]

# 日干支の計算
# 1900年1月1日は申日とする
# 1900年から生まれた年までの閏年の数を求める
leap_years = (year - 1900) // 4 + 1

# 1900年から生まれた年までの日数を求める
days = (year - 1900) * 365 + leap_years

# 生まれた月までの日数を加算する
if month == 2:
    days += 31
elif month == 3:
    days += 59
elif month == 4:
    days += 90
elif month == 5:
    days += 120
elif month == 6:
    days += 151
elif month == 7:
    days += 181
elif month == 8:
    days += 212
elif month == 9:
    days += 243
elif month == 10:
    days += 273
elif month == 11:
    days += 304
elif month == 12:
    days += 334

# 閏年で2月以降に生まれた場合は1日を加算する
if year % 4 == 0 and month > 2:
    days += 1

# 生まれた日を加算する
days += day

# 日干支のインデックスを求める(1900年1月1日が申日なので8から始める)
index = (days + 8) % 12

# 日干支を求める
day_zodiac = zodiac[index]

# 結果の出力
print(f"{year}年{month}月{day}日生まれのあなたの")
print(f"年干支は{year_zodiac}です。")
print(f"月干支は{month_zodiac}です。")
print(f"日干支は{day_zodiac}です。")

いいねぇ~♪

コメント

タイトルとURLをコピーしました