西暦年月日の各桁数を合計した数字を吉凶数というらしいです。完全にオカルトですが、そうはいっても、縁起の悪い数字は避けたかったり、逆に何か大事な数字を決める際は、一応、良いとされる数字にしてみたかったり。
ということで、暇つぶしに吉凶数を計算するpythonコード。(計算してくれるWebサイト/アプリなどもありますが)
吉凶数計算
超シンプルに。
# 数字入力
number = input("数字を入力:")
# 各桁を足す
total = sum(int(digit) for digit in number)
# 結果表示
print(f"{number} -> 各桁の合計は {total} ")
例えば、自分の生まれた生年月日とかを入れてみます。下記はサンプルで、私の実年齢ではありません。
吉凶数の出現回数のカウント
吉凶数の出現回数をカウントするコード。西暦年月日で開始と終了を指定する。
from datetime import datetime, timedelta
from collections import Counter
start_date_str = input("開始日(YYYY-MM-DD)を入力:")
end_date_str = input("終了日(YYYY-MM-DD)を入力:")
start_date = datetime.strptime(start_date_str, "%Y-%m-%d")
end_date = datetime.strptime(end_date_str, "%Y-%m-%d")
totals = []
current_date = start_date
while current_date <= end_date:
date_str = current_date.strftime("%Y%m%d")
total = sum(int(digit) for digit in date_str)
totals.append(total)
current_date += timedelta(days=1)
count_totals = Counter(totals)
print("吉凶数と出現回数:")
for total, count in sorted(count_totals.items()):
print(f"{total}: {count}回")
結果は以下の通り。西暦1年1月1日から2100年12月31日まで。
3: 16回 4: 80回 5: 248回 6: 574回 7: 1112回 8: 1923回 9: 3069回 10: 4631回 11: 6680回 12: 9282回 13: 12446回 14: 16108回 15: 20163回 16: 24470回 17: 28887回 18: 33236回 19: 37328回 20: 40948回 21: 43872回 22: 45898回 23: 46907回 24: 46866回 25: 45822回 26: 43851回 27: 41065回 28: 37605回 29: 33648回 30: 29396回 31: 25072回 32: 20883回 33: 16985回 34: 13470回 35: 10390回 36: 7775回 37: 5630回 38: 3937回 39: 2656回 40: 1727回 41: 1078回 42: 638回 43: 351回 44: 175回 45: 76回 46: 27回 47: 7回 48: 1回
csvファイルに出力
from datetime import datetime, timedelta
from collections import Counter
import csv
start_date_str = input("開始日(YYYY-MM-DD):")
end_date_str = input("終了日(YYYY-MM-DD):")
start_date = datetime.strptime(start_date_str, "%Y-%m-%d")
end_date = datetime.strptime(end_date_str, "%Y-%m-%d")
totals = []
current_date = start_date
while current_date <= end_date:
date_str = current_date.strftime("%Y%m%d")
total = sum(int(digit) for digit in date_str)
totals.append(total)
current_date += timedelta(days=1)
count_totals = Counter(totals)
# 出現回数と合計数のCSVファイル生成
with open('count_totals.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(['出現回数', '合計数'])
for total, count in count_totals.items():
writer.writerow([count, total])
# 西暦年月日と合計数のcsv生成
with open('date_totals.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(['西暦年月日', '合計数'])
current_date = start_date
for total in totals:
date_str = current_date.strftime("%Y-%m-%d")
writer.writerow([date_str, total])
current_date += timedelta(days=1)
あとは調べたい吉凶数から逆算して年月日を探す。西暦1年から2100年だと76万件(707009)もあるので、Excelでも重いので19000年~2023年とかで。