jeraconv (Japanese Era Name Converter) とは
Python学習の一環として、パッケージ作成とPypiへの登録をやってみたくて作った習作ライブラリです。
比較的簡単に、和暦と西暦を相互変換できるものを目指して作成しました。
なお、変換の基となるデータは wikipedia の 元号一覧(日本) に準拠しています。
MIT ライセンスで公開中
MITライセンスで公開していますので、誰でも自由に利用してもらって結構ですが、結果の確からしさは保証されていません。
そもそも 元号一覧(日本) の情報を JSON データに落とし込む段階で、一つ一つ手入力する気にはなれなかったため、EXCELの関数を駆使して年号や始期、終期を抽出しています。ここでミスっていれば、当然結果は誤ったものが出力されてしまいます。
お使いになる方は、これらのことをご理解の上で使用するようにお願いいたします。バグ報告などは歓迎します。この記事にコメントしていただけると、作者が暇なときに対応するかもしれません。(基本は休日プログラマーなので・・・)
インストール方法
pip install jeraconv
# 最新版 : version0.2.1
jeraconv でできること
和暦から西暦への変換
from jeraconv import jeraconv
# J2W クラスのインスタンス生成
# このタイミングで変換の要となる JSON データが load される
j2w = jeraconv.J2W()
# ex.1 : 一般的な使用方法
print(j2w.convert('文治6年'))
# result (int)1190
# ex.2 : 全角数字も使用可能
print(j2w.convert('平成31年'))
# result (int)2019
# ex.3 : "1年" は "元年" と書くことも可能
print(j2w.convert('令和元年'))
# result (int)2019
# ex.4 : 存在しない年号を指定すると ValueError を返す
print(j2w.convert('牌孫4年'))
# result ValueError
西暦から和暦への変換
from jeraconv import jeraconv
# W2J クラスのインスタンス生成
# このタイミングで変換の要となる JSON データが load される
w2j = jeraconv.W2J()
# ex.1 : 一般的な使用方法
year = 2019
month = 5
day = 31
print(w2j.convert(year, month, day))
# result (str) 令和1年5月31日
# ex.2 : 辞書型で応答を受け取る場合
print(w2j.convert(year, month, day, return_type='dict'))
# result (dict) {'era': '令和', 'year': 1, 'month': 5, 'day': 31}
# ex.3 : リスト型で応答を受け取る場合
print(w2j.convert(year, month, day, return_type='list'))
# result (list) ['令和', 1, 5, 31]
# ex.4 : タプル型で応答を受け取る場合
print(w2j.convert(year, month, day, return_type='tuple'))
# result (tuple) ('令和', 1, 5, 31)
# ex.5 : 年月日を省略した場合は実行時の年月日を変換
print(w2j.convert())