気になるガジェット

気になるガジェットについて簡単にまとめたメモブログです

Pythonで西暦を和暦に変換する

f:id:the_beatles:20170104133647j:plain:w1000

あけましておめでとうございます

phpはもう飽きてきちゃっているため、今年はPythonを覚えようかと思っております。

Hello worldは何度も書いているため、意外と使い道がありそうな、西暦から和暦に変換するコードを書いてみました。

もう少し慣れてきたら、チェック処理等を入れていって、ちゃんとしたコードに仕上げていこうと思っています。

コマンドラインで実行するタイプですが、ロジックは基本的に変わらないと思います。

初めてのPython 第3版
初めてのPython 第3版
posted with amazlet at 17.01.04
Mark Lutz
オライリージャパン
売り上げランキング: 61,666
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# ライブラリのインポート
import sys
import datetime
import traceback

# 通常処理
try:
    
    # 実行パラメータ取得
    args    = sys.argv
    year    = args[1]
    month   = args[2]
    day     = args[3]

    # 西暦から和暦への変換処理
    calendar    = ['明治以前', '明治', '大正', '昭和', '平成'] 
    calc_date   = (int(year) * 10000) + (int(month) * 100) + int(day)

    if calc_date < 18680908:
        calc_year   = calendar[0] + str(year)
    elif calc_date < 19120730:
        calc_year   = calendar[1] + str(int(year) - 1867)
    elif calc_date < 19261225:
        calc_year   = calendar[2] + str(int(year) - 1911)
    elif calc_date < 19890108:
        calc_year   = calendar[3] + str(int(year) - 1925)
    else:
        calc_year   = calendar[4] + str(int(year) - 1988)
    
    print "{0}年{1}月{2}日".format(calc_year, month, day)

# エラー処理
except:
    
    # システム日付を取得してコマンド使用例を出力する
    today   = datetime.datetime.today()
    print "usage: python japanese_calendar.py {0} {1} {2}".format(today.strftime('%Y'), today.strftime('%m'), today.strftime('%d'))