Pythonで日本の元号(令和・平成)を扱う方法を完全ガイド!初心者でもわかる日時操作
生徒
「Pythonで令和や平成みたいな元号を扱う方法ってありますか?西暦しか扱えないと思ってました。」
先生
「Pythonでも日本の元号を扱うことができますよ。datetimeと外部ライブラリを組み合わせれば、令和◯年を西暦に変換したり、その逆を行うこともできます。」
生徒
「外部ライブラリってインストールしないとだめですか?」
先生
「そうですね。でも難しい操作ではないので、一緒に仕組みを見ていくと理解しやすいですよ。」
1. Pythonで元号を扱うには?基礎知識を整理しよう
日本では西暦とは別に元号を使います。令和や平成のような表記は日本独自のもので、コンピュータの世界では西暦を使うことが多いため、その変換が必要になる場面があります。たとえば行政関連の書類を処理するプログラムを作るときや、ユーザーが入力した「令和五年」の情報を正しく扱う必要があるときなどです。Pythonでは標準ライブラリのdatetimeで日付を扱いながら、別のライブラリを使うことで元号の変換ができます。
2. 元号を理解するための基本(令和・平成の開始年)
元号を扱うには、各元号がいつ始まったかを知っておく必要があります。令和は二〇一九年、平成は一九八九年に始まりました。たとえば令和一年は二〇一九年であり、令和二年は二〇二〇年になります。このように元号の開始年に入力された年数を足すことで西暦に変換できます。逆に西暦から元号に変換する場合は、基準の開始年との差を取ることで算出できます。こうした計算はプログラムで自動化できるので、決して難しいものではありません。
3. datetimeで日付オブジェクトを扱う基本
datetimeはPythonに標準で備わっている日付と時間を扱うためのモジュールです。具体的には日付を作る、今日の日付を取り出す、年や月や日を取得するなど、日時に関する基本的な操作がこのモジュールだけでできます。元号を扱うときにも、西暦の形式で一度datetimeオブジェクトを作っておくことで、後から整形して表示したり計算したりできます。
4. 元号を扱うための外部ツール:jaconvとは?
jaconvは日本語文字列の変換を行うための便利なライブラリで、ひらがなやカタカナの変換だけでなく、数字を全角や半角に変えるなど日本語特有の処理を簡単にしてくれます。元号自体の計算は手動で作ることもできますが、元号名を変換したり文字形式を統一したりするときに役立つため、セットで覚えておくと作業が楽になります。Pythonではpipを使って簡単にインストールできます。
5. 令和の年を西暦に変換するプログラム例
ここでは令和の年を西暦に変換する簡単なプログラムを紹介します。たとえば令和五年なら二〇二三年になります。令和は二〇一九年に始まったため、入力された年数に二〇一八を足すことで変換できます。
reiwa = 5
seireki = 2018 + reiwa
print(seireki)
2023
6. 西暦を令和に変換するプログラム例
今度は西暦を元号に変換する方法です。西暦が二〇一九年以上であれば令和に変換することができます。入力された値から二〇一八を引いて令和何年かを求めます。
year = 2021
reiwa = year - 2018
print("令和", reiwa, "年")
令和 3 年
7. datetimeと組み合わせて自在に扱う例
元号から西暦に変換したあと、datetimeで日付として扱うこともできます。たとえば令和四年五月一日を正しく処理したい場合、まず西暦に変換してから日時オブジェクトにします。こうすると日付の計算やフォーマット変更が簡単になります。
from datetime import date
reiwa_year = 4
year = reiwa_year + 2018
d = date(year, 5, 1)
print(d)
2022-05-01
8. 平成の元号にも応用できる変換方法
同じ考え方で平成にも応用できます。平成は一九八九年に始まったため、平成の年に一九八八を足すと西暦になります。逆に西暦から平成を求めたい場合は、一九八八を引き算します。こうした計算部分を関数としてまとめれば、令和や平成を自動で切り替える便利な仕組みも作れます。
heisei = 10
year = heisei + 1988
print(year)
1998