Last active
January 12, 2025 00:33
-
-
Save roflsunriz/2067e24839ddf869985a69253c1d25e8 to your computer and use it in GitHub Desktop.
japaneseEra : 和暦(年号・元号)西暦変換プログラム
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class JapaneseEra: | |
ERA_STARTS = { | |
"飛鳥": 592, | |
"白雉": 650, | |
"天武": 672, | |
"朱鳥": 686, | |
"大宝": 701, | |
"慶雲": 704, | |
"和銅": 708, | |
"霊亀": 715, | |
"養老": 717, | |
"神亀": 724, | |
"天平": 729, | |
"天平感宝": 749, | |
"天平勝宝": 749, | |
"天平宝字": 757, | |
"天平神護": 765, | |
"神護景雲": 767, | |
"宝亀": 770, | |
"天応": 781, | |
"延暦": 782, | |
"大同": 806, | |
"弘仁": 810, | |
"天長": 824, | |
"承和": 834, | |
"嘉祥": 848, | |
"仁寿": 851, | |
"斉衡": 854, | |
"天安": 857, | |
"貞観": 859, | |
"元慶": 877, | |
"仁和": 885, | |
"寛平": 889, | |
"昌泰": 898, | |
"延喜": 901, | |
"延長": 923, | |
"承平": 931, | |
"天慶": 938, | |
"天暦": 947, | |
"天徳": 957, | |
"応和": 961, | |
"康保": 964, | |
"安和": 968, | |
"天禄": 970, | |
"天延": 973, | |
"貞元": 976, | |
"天元": 978, | |
"永観": 983, | |
"寛和": 985, | |
"永延": 987, | |
"永祚": 989, | |
"正暦": 990, | |
"長徳": 995, | |
"長保": 999, | |
"寛弘": 1004, | |
"長和": 1012, | |
"寛仁": 1017, | |
"治安": 1021, | |
"万寿": 1024, | |
"長元": 1028, | |
"長暦": 1037, | |
"長久": 1040, | |
"寛徳": 1044, | |
"永承": 1046, | |
"天喜": 1053, | |
"康平": 1058, | |
"治暦": 1065, | |
"延久": 1069, | |
"承保": 1074, | |
"承暦": 1077, | |
"永保": 1081, | |
"応徳": 1084, | |
"寛治": 1087, | |
"嘉保": 1094, | |
"永長": 1096, | |
"承徳": 1097, | |
"康和": 1099, | |
"長治": 1104, | |
"嘉承": 1106, | |
"天仁": 1108, | |
"天永": 1110, | |
"永久": 1113, | |
"元永": 1118, | |
"保安": 1120, | |
"天治": 1124, | |
"大治": 1126, | |
"天承": 1131, | |
"長承": 1132, | |
"保延": 1135, | |
"永治": 1141, | |
"康治": 1142, | |
"天養": 1144, | |
"久安": 1145, | |
"仁平": 1151, | |
"久寿": 1154, | |
"保元": 1156, | |
"平治": 1159, | |
"永暦": 1160, | |
"応保": 1161, | |
"長寛": 1163, | |
"永万": 1165, | |
"仁安": 1166, | |
"嘉応": 1169, | |
"承安": 1171, | |
"安元": 1175, | |
"治承": 1177, | |
"養和": 1181, | |
"寿永": 1182, | |
"元暦": 1184, | |
"文治": 1185, | |
"建久": 1190, | |
"正治": 1199, | |
"建仁": 1201, | |
"元久": 1204, | |
"建永": 1206, | |
"承元": 1207, | |
"建暦": 1211, | |
"建保": 1213, | |
"承久": 1219, | |
"貞応": 1222, | |
"元仁": 1224, | |
"嘉禄": 1225, | |
"安貞": 1227, | |
"寛喜": 1229, | |
"貞永": 1232, | |
"天福": 1233, | |
"文暦": 1234, | |
"嘉禎": 1235, | |
"暦仁": 1238, | |
"延応": 1239, | |
"仁治": 1240, | |
"寛元": 1243, | |
"宝治": 1247, | |
"建長": 1249, | |
"康元": 1256, | |
"正嘉": 1257, | |
"正元": 1259, | |
"文応": 1260, | |
"弘長": 1261, | |
"文永": 1264, | |
"建治": 1275, | |
"弘安": 1278, | |
"正応": 1288, | |
"永仁": 1293, | |
"正安": 1299, | |
"乾元": 1302, | |
"嘉元": 1303, | |
"徳治": 1306, | |
"延慶": 1308, | |
"応長": 1311, | |
"正和": 1312, | |
"文保": 1317, | |
"元応": 1319, | |
"元亨": 1321, | |
"正中": 1324, | |
"嘉暦": 1326, | |
"元徳": 1329, | |
"正慶": 1332, | |
"建武": 1334, | |
"延元": 1336, | |
"興国": 1340, | |
"正平": 1346, | |
"観応": 1350, | |
"文和": 1352, | |
"延文": 1356, | |
"康安": 1361, | |
"貞治": 1362, | |
"応安": 1368, | |
"永和": 1375, | |
"康暦": 1379, | |
"永徳": 1381, | |
"至徳": 1384, | |
"嘉慶": 1387, | |
"康応": 1389, | |
"明徳": 1390, | |
"応永": 1394, | |
"正長": 1428, | |
"永享": 1429, | |
"嘉吉": 1441, | |
"文安": 1444, | |
"宝徳": 1449, | |
"享徳": 1452, | |
"康正": 1455, | |
"長禄": 1457, | |
"寛正": 1460, | |
"文正": 1466, | |
"応仁": 1467, | |
"文明": 1469, | |
"長享": 1487, | |
"延徳": 1489, | |
"明応": 1492, | |
"文亀": 1501, | |
"永正": 1504, | |
"大永": 1521, | |
"享禄": 1528, | |
"天文": 1532, | |
"弘治": 1555, | |
"永禄": 1558, | |
"元亀": 1570, | |
"天正": 1573, | |
"文禄": 1592, | |
"慶長": 1596, | |
"元和": 1615, | |
"寛永": 1624, | |
"正保": 1644, | |
"慶安": 1648, | |
"承応": 1652, | |
"明暦": 1655, | |
"万治": 1658, | |
"寛文": 1661, | |
"延宝": 1673, | |
"天和": 1681, | |
"貞享": 1684, | |
"元禄": 1688, | |
"宝永": 1704, | |
"正徳": 1711, | |
"享保": 1716, | |
"元文": 1736, | |
"寛保": 1741, | |
"延享": 1744, | |
"寛延": 1748, | |
"宝暦": 1751, | |
"明和": 1764, | |
"安永": 1772, | |
"天明": 1781, | |
"寛政": 1789, | |
"享和": 1801, | |
"文化": 1804, | |
"文政": 1818, | |
"天保": 1830, | |
"弘化": 1844, | |
"嘉永": 1848, | |
"安政": 1854, | |
"万延": 1860, | |
"文久": 1861, | |
"元治": 1864, | |
"慶応": 1865, | |
"明治": 1868, | |
"大正": 1912, | |
"昭和": 1926, | |
"平成": 1989, | |
"令和": 2019 | |
} | |
ERA_INITIALS = { | |
# 現代の元号(1文字)- 大文字小文字両方対応 | |
'R': '令和', # REIWA | |
'r': '令和', | |
'H': '平成', # HEISEI | |
'h': '平成', | |
'S': '昭和', # SHOWA/SYOWA | |
's': '昭和', | |
'T': '大正', # TAISHO/TAISYO | |
't': '大正', | |
'M': '明治', # MEIJI | |
'm': '明治', | |
# 現代の元号(フル)- ヘボン式対応 | |
'REIWA': '令和', | |
'reiwa': '令和', | |
'HEISEI': '平成', | |
'heisei': '平成', | |
'SHOWA': '昭和', | |
'SYOWA': '昭和', | |
'showa': '昭和', | |
'syowa': '昭和', | |
'TAISHO': '大正', | |
'TAISYO': '大正', | |
'taisho': '大正', | |
'taisyo': '大正', | |
'MEIJI': '明治', | |
'meiji': '明治', | |
# 江戸時代以前(フルネーム)- ヘボン式対応 | |
'KEIO': '慶応', | |
'keio': '慶応', | |
'GENJI': '元治', | |
'genji': '元治', | |
'BUNKYUU': '文久', | |
'BUNKYUU': '文久', | |
'bunkyuu': '文久', | |
'bunkyu': '文久', | |
'MANEN': '万延', | |
'manen': '万延', | |
'ANSEI': '安政', | |
'ansei': '安政', | |
'KAEI': '嘉永', | |
'kaei': '嘉永', | |
'KOUKA': '弘化', | |
'kouka': '弘化', | |
'TENPOU': '天保', | |
'TENPO': '天保', | |
'tenpou': '天保', | |
'tenpo': '天保', | |
'BUNSEI': '文政', | |
'bunsei': '文政', | |
'BUNKA': '文化', | |
'bunka': '文化', | |
'KYOUWA': '享和', | |
'KYOWA': '享和', | |
'kyouwa': '享和', | |
'kyowa': '享和', | |
'KANSEI': '寛政', | |
'kansei': '寛政', | |
'TENMEI': '天明', | |
'tenmei': '天明', | |
'ANEI': '安永', | |
'anei': '安永', | |
'MEIWA': '明和', | |
'meiwa': '明和', | |
'HOUREKI': '宝暦', | |
'HOREKI': '宝暦', | |
'houreki': '宝暦', | |
'horeki': '宝暦', | |
'KANEN': '寛延', | |
'kanen': '寛延', | |
'ENKYOU': '延享', | |
'ENKYO': '延享', | |
'enkyou': '延享', | |
'enkyo': '延享', | |
'KANPOU': '寛保', | |
'KANPO': '寛保', | |
'kanpou': '寛保', | |
'kanpo': '寛保', | |
'GENBUN': '元文', | |
'genbun': '元文', | |
'KYOUHOU': '享保', | |
'KYOHO': '享保', | |
'kyouhou': '享保', | |
'kyoho': '享保', | |
'SHOUTOKU': '正徳', | |
'SHOTOKU': '正徳', | |
'shoutoku': '正徳', | |
'shotoku': '正徳', | |
'HOUEI': '宝永', | |
'HOEI': '宝永', | |
'houei': '宝永', | |
'hoei': '宝永', | |
'GENROKU': '元禄', | |
'genroku': '元禄', | |
'JOUKYOU': '貞享', | |
'JOKYO': '貞享', | |
'joukyou': '貞享', | |
'jokyo': '貞享', | |
'TENNA': '天和', | |
'tenna': '天和', | |
'ENPOU': '延宝', | |
'EMPO': '延宝', | |
'enpou': '延宝', | |
'empo': '延宝', | |
'KANBUN': '寛文', | |
'kanbun': '寛文', | |
'MANJI': '万治', | |
'manji': '万治', | |
'MEIREKI': '明暦', | |
'meireki': '明暦', | |
'JOUOU': '承応', | |
'JOOU': '承応', | |
'jouou': '承応', | |
'joou': '承応', | |
'KEIAN': '慶安', | |
'keian': '慶安', | |
'SHOUHOU': '正保', | |
'SHOHO': '正保', | |
'shouhou': '正保', | |
'shoho': '正保', | |
'GENNA': '元和', | |
'genna': '元和', | |
'KEICHOU': '慶長', | |
'KEICHO': '慶長', | |
'keichou': '慶長', | |
'keicho': '慶長', | |
'BUNROKU': '文禄', | |
'bunroku': '文禄', | |
'TENSHOU': '天正', | |
'TENSHO': '天正', | |
'tenshou': '天正', | |
'tensho': '天正', | |
'GENKI': '元亀', | |
'genki': '元亀', | |
'EIROKU': '永禄', | |
'eiroku': '永禄', | |
'KOUJI': '弘治', | |
'KOJI': '弘治', | |
'kouji': '弘治', | |
'koji': '弘治', | |
'TENBUN': '天文', | |
'tenbun': '天文', | |
'KYOUROKU': '享禄', | |
'KYOROKU': '享禄', | |
'kyouroku': '享禄', | |
'kyoroku': '享禄', | |
'DAIEI': '大永', | |
'daiei': '大永', | |
'EISHOU': '永正', | |
'EISHO': '永正', | |
'eishou': '永正', | |
'eisho': '永正', | |
'BUNKI': '文亀', | |
'bunki': '文亀', | |
'MEIOU': '明応', | |
'MEIO': '明応', | |
'meiou': '明応', | |
'meio': '明応', | |
'ENTOKU': '延徳', | |
'entoku': '延徳', | |
'CHOUKYOU': '長享', | |
'CHOKYO': '長享', | |
'choukyou': '長享', | |
'chokyo': '長享', | |
'BUNMEI': '文明', | |
'bunmei': '文明', | |
'OUNIN': '応仁', | |
'ONIN': '応仁', | |
'ounin': '応仁', | |
'onin': '応仁', | |
'BUNSHOU': '文正', | |
'BONSHO': '文正', | |
'bunshou': '文正', | |
'bonsho': '文正', | |
'KANSHOU': '寛正', | |
'KANCHO': '寛正', | |
'kanshou': '寛正', | |
'kancho': '寛正', | |
'CHOUROKU': '長禄', | |
'CHOROKU': '長禄', | |
'chouroku': '長禄', | |
'choroku': '長禄', | |
'KOUSHOU': '康正', | |
'KOSHO': '康正', | |
'koushou': '康正', | |
'kosho': '康正', | |
'KYOUTOKU': '享徳', | |
'KYOTOKU': '享徳', | |
'kyoutoku': '享徳', | |
'kyotoku': '享徳', | |
'HOUTOKU': '宝徳', | |
'HOTOKU': '宝徳', | |
'houtoku': '宝徳', | |
'hotoku': '宝徳', | |
'BUNAN': '文安', | |
'bunan': '文安', | |
'KAKITSU': '嘉吉', | |
'kakitsu': '嘉吉', | |
'EIKYOU': '永享', | |
'EIKYO': '永享', | |
'eikyou': '永享', | |
'eikyo': '永享', | |
'SHOUCHO': '正長', | |
'SHOCHO': '正長', | |
'shoucho': '正長', | |
'shocho': '正長', | |
'OUEI': '応永', | |
'OEI': '応永', | |
'ouei': '応永', | |
'oei': '応永', | |
'MEITOKU': '明徳', | |
'meitoku': '明徳', | |
'KOUOU': '康応', | |
'KOO': '康応', | |
'kouou': '康応', | |
'koo': '康応', | |
'KAKEI': '嘉慶', | |
'kakei': '嘉慶', | |
'SHITOKU': '至徳', | |
'shitoku': '至徳', | |
'EITOKU': '永徳', | |
'eitoku': '永徳', | |
'KOURYAKU': '康暦', | |
'KORYAKU': '康暦', | |
'kouryaku': '康暦', | |
'koryaku': '康暦', | |
'EIWA': '永和', | |
'eiwa': '永和', | |
'OUAN': '応安', | |
'OAN': '応安', | |
'ouan': '応安', | |
'oan': '応安', | |
'JOJI': '貞治', | |
'joji': '貞治', | |
'KOUAN': '康安', | |
'KOAN': '康安', | |
'kouan': '康安', | |
'koan': '康安', | |
'ENBUN': '延文', | |
'enbun': '延文', | |
'BUNWA': '文和', | |
'bunwa': '文和', | |
'KANNOU': '観応', | |
'KANNO': '観応', | |
'kannou': '観応', | |
'kanno': '観応', | |
'SHOUEI': '正平', | |
'SHOHEI': '正平', | |
'shouei': '正平', | |
'shohei': '正平', | |
'KOUKOKU': '興国', | |
'KOKOKU': '興国', | |
'koukoku': '興国', | |
'kokoku': '興国', | |
'ENGEN': '延元', | |
'engen': '延元', | |
'KENMU': '建武', | |
'kenmu': '建武', | |
'SHOUKYOU': '正慶', | |
'SHOKYO': '正慶', | |
'shoukyou': '正慶', | |
'shokyo': '正慶', | |
'GENTOKU': '元徳', | |
'gentoku': '元徳', | |
'KAREKI': '嘉暦', | |
'kareki': '嘉暦', | |
'SHOUCHUU': '正中', | |
'SHOCHU': '正中', | |
'shouchuu': '正中', | |
'shochu': '正中', | |
'GENKO': '元亨', | |
'genko': '元亨', | |
'GENOU': '元応', | |
'GENO': '元応', | |
'genou': '元応', | |
'geno': '元応', | |
'BUNPOU': '文保', | |
'BUNPO': '文保', | |
'bunpou': '文保', | |
'bunpo': '文保', | |
'SHOUWA': '正和', | |
'SHOWA': '正和', | |
'shouwa': '正和', | |
'showa': '正和', | |
'OUCHOU': '応長', | |
'OCHO': '応長', | |
'ouchou': '応長', | |
'ocho': '応長', | |
'ENKYOU': '延慶', | |
'ENKYO': '延慶', | |
'enkyou': '延慶', | |
'enkyo': '延慶', | |
'TOKUJI': '徳治', | |
'tokuji': '徳治', | |
'KAGEN': '嘉元', | |
'kagen': '嘉元', | |
'KENGEN': '乾元', | |
'kengen': '乾元', | |
'SHOAN': '正安', | |
'shoan': '正安', | |
'EININ': '永仁', | |
'einin': '永仁', | |
'SHOUOU': '正応', | |
'SHOO': '正応', | |
'shouou': '正応', | |
'shoo': '正応', | |
'KOUAN': '弘安', | |
'KOAN': '弘安', | |
'kouan': '弘安', | |
'koan': '弘安', | |
'KENJI': '建治', | |
'kenji': '建治', | |
'BUNNEI': '文永', | |
'BUNEI': '文永', | |
'bunnei': '文永', | |
'bunei': '文永', | |
'KOUCHO': '弘長', | |
'KOCHO': '弘長', | |
'koucho': '弘長', | |
'kocho': '弘長', | |
'BUNOU': '文応', | |
'BUNO': '文応', | |
'bunou': '文応', | |
'buno': '文応', | |
'SHOUKA': '正嘉', | |
'SHOKA': '正嘉', | |
'shouka': '正嘉', | |
'shoka': '正嘉', | |
'KOUEN': '康元', | |
'KOEN': '康元', | |
'kouen': '康元', | |
'koen': '康元', | |
'KENCHOU': '建長', | |
'KENCHO': '建長', | |
'kenchou': '建長', | |
'kencho': '建長', | |
'HOUJI': '宝治', | |
'HOJI': '宝治', | |
'houji': '宝治', | |
'hoji': '宝治', | |
'KANGEN': '寛元', | |
'kangen': '寛元', | |
'NINJI': '仁治', | |
'ninji': '仁治', | |
'ENOU': '延応', | |
'ENO': '延応', | |
'enou': '延応', | |
'eno': '延応', | |
'REKININ': '暦仁', | |
'rekinin': '暦仁', | |
'KATEI': '嘉禎', | |
'katei': '嘉禎', | |
'BUNRYAKU': '文暦', | |
'BUNREKI': '文暦', | |
'bunryaku': '文暦', | |
'bunreki': '文暦', | |
'TENPUKU': '天福', | |
'tenpuku': '天福', | |
'JOUEI': '貞永', | |
'JOEI': '貞永', | |
'jouei': '貞永', | |
'joei': '貞永', | |
'KANKI': '寛喜', | |
'kanki': '寛喜', | |
'ANTEI': '安貞', | |
'antei': '安貞', | |
'KAROKU': '嘉禄', | |
'karoku': '嘉禄', | |
'GENNIN': '元仁', | |
'gennin': '元仁', | |
'JOUOU': '貞応', | |
'JOOU': '貞応', | |
'jouou': '貞応', | |
'joou': '貞応', | |
'JOUKYUU': '承久', | |
'JOKYU': '承久', | |
'joukyuu': '承久', | |
'jokyu': '承久', | |
'KENPOU': '建保', | |
'KENPO': '建保', | |
'kenpou': '建保', | |
'kenpo': '建保', | |
'KENRYAKU': '建暦', | |
'kenryaku': '建暦', | |
'JOUGEN': '承元', | |
'JOGEN': '承元', | |
'jougen': '承元', | |
'jogen': '承元', | |
'KENEI': '建永', | |
'kenei': '建永', | |
'GENKYUU': '元久', | |
'GENKYU': '元久', | |
'genkyuu': '元久', | |
'genkyu': '元久', | |
'KENNIN': '建仁', | |
'kennin': '建仁', | |
'SHOUJI': '正治', | |
'SHOJI': '正治', | |
'shouji': '正治', | |
'shoji': '正治', | |
'KENKYUU': '建久', | |
'KENKYU': '建久', | |
'kenkyuu': '建久', | |
'kenkyu': '建久', | |
'BUNJI': '文治', | |
'bunji': '文治', | |
'GENRYAKU': '元暦', | |
'genryaku': '元暦', | |
'JUEI': '寿永', | |
'juei': '寿永', | |
'YOUWA': '養和', | |
'YOWA': '養和', | |
'youwa': '養和', | |
'yowa': '養和', | |
'JISHOU': '治承', | |
'JISHO': '治承', | |
'jishou': '治承', | |
'jisho': '治承', | |
'ANGEN': '安元', | |
'angen': '安元', | |
'JOUAN': '承安', | |
'JOAN': '承安', | |
'jouan': '承安', | |
'joan': '承安', | |
'KAOU': '嘉応', | |
'KAO': '嘉応', | |
'kaou': '嘉応', | |
'kao': '嘉応', | |
'NIAN': '仁安', | |
'nian': '仁安', | |
'EIMAN': '永万', | |
'eiman': '永万', | |
'CHOUKAN': '長寛', | |
'CHOKAN': '長寛', | |
'choukan': '長寛', | |
'chokan': '長寛', | |
'OUHOU': '応保', | |
'OHO': '応保', | |
'ouhou': '応保', | |
'oho': '応保', | |
'EIRYAKU': '永暦', | |
'eiryaku': '永暦', | |
'HEIJI': '平治', | |
'heiji': '平治', | |
'HOUGEN': '保元', | |
'HOGEN': '保元', | |
'hougen': '保元', | |
'hogen': '保元', | |
'KYUUJU': '久寿', | |
'kyuuju': '久寿', | |
'kyuju': '久寿', | |
'NINPEI': '仁平', | |
'ninpei': '仁平', | |
'KYUAN': '久安', | |
'kyuan': '久安', | |
'TENOU': '天養', | |
'TENO': '天養', | |
'tenou': '天養', | |
'teno': '天養', | |
'KOUJI': '康治', | |
'KOJI': '康治', | |
'kouji': '康治', | |
'koji': '康治', | |
'EIJI': '永治', | |
'eiji': '永治', | |
'HOUEN': '保延', | |
'HOEN': '保延', | |
'houen': '保延', | |
'hoen': '保延', | |
'CHOUSHOU': '長承', | |
'CHOSHO': '長承', | |
'choushou': '長承', | |
'chosho': '長承', | |
'TENSHOU': '天承', | |
'TENSHO': '天承', | |
'tenshou': '天承', | |
'tensho': '天承', | |
'DAIJI': '大治', | |
'daiji': '大治', | |
'TENJI': '天治', | |
'tenji': '天治', | |
'HOAN': '保安', | |
'hoan': '保安', | |
'GENEI': '元永', | |
'genei': '元永', | |
'EIKYUU': '永久', | |
'EIKYU': '永久', | |
'eikyuu': '永久', | |
'eikyu': '永久', | |
'TENNIN': '天仁', | |
'tennin': '天仁', | |
'KASHOU': '嘉承', | |
'KASHO': '嘉承', | |
'kashou': '嘉承', | |
'kasho': '嘉承', | |
'CHOUJI': '長治', | |
'CHOJI': '長治', | |
'chouji': '長治', | |
'choji': '長治', | |
'KOUWA': '康和', | |
'KOWA': '康和', | |
'kouwa': '康和', | |
'kowa': '康和', | |
'JOUTOKU': '承徳', | |
'JOTOKU': '承徳', | |
'joutoku': '承徳', | |
'jotoku': '承徳', | |
'EICHOU': '永長', | |
'EICHO': '永長', | |
'eichou': '永長', | |
'eicho': '永長', | |
'KAHOU': '嘉保', | |
'KAHO': '嘉保', | |
'kahou': '嘉保', | |
'kaho': '嘉保', | |
'KANJI': '寛治', | |
'kanji': '寛治', | |
'OUTOKU': '応徳', | |
'OTOKU': '応徳', | |
'outoku': '応徳', | |
'otoku': '応徳', | |
'EIHEI': '永保', | |
'eihei': '永保', | |
'JOURYAKU': '承暦', | |
'JORYAKU': '承暦', | |
'jouryaku': '承暦', | |
'joryaku': '承暦', | |
'SHOUHOU': '承保', | |
'SHOHO': '承保', | |
'shouhou': '承保', | |
'shoho': '承保', | |
'ENKYUU': '延久', | |
'ENKYU': '延久', | |
'enkyuu': '延久', | |
'enkyu': '延久', | |
'JIRYAKU': '治暦', | |
'jiryaku': '治暦', | |
'KOUHEI': '康平', | |
'KOHEI': '康平', | |
'kouhei': '康平', | |
'kohei': '康平', | |
'TENGI': '天喜', | |
'tengi': '天喜', | |
'EISHOU': '永承', | |
'EISHO': '永承', | |
'eishou': '永承', | |
'eisho': '永承', | |
'KANTOKU': '寛徳', | |
'kantoku': '寛徳', | |
'CHOUKYUU': '長久', | |
'CHOKYU': '長久', | |
'choukyuu': '長久', | |
'chokyu': '長久', | |
'CHOUREKI': '長暦', | |
'CHOREKI': '長暦', | |
'choureki': '長暦', | |
'choreki': '長暦', | |
'CHOUGEN': '長元', | |
'CHOGEN': '長元', | |
'chougen': '長元', | |
'chogen': '長元', | |
'MANJU': '万寿', | |
'manju': '万寿', | |
'JIAN': '治安', | |
'jian': '治安', | |
'KANNIN': '寛仁', | |
'kannin': '寛仁', | |
'CHOUWA': '長和', | |
'CHOWA': '長和', | |
'chouwa': '長和', | |
'chowa': '長和', | |
'KANKOU': '寛弘', | |
'KANKO': '寛弘', | |
'kankou': '寛弘', | |
'kanko': '寛弘', | |
'CHOUHOU': '長保', | |
'CHOHO': '長保', | |
'chouhou': '長保', | |
'choho': '長保', | |
'CHOUTOKU': '長徳', | |
'CHOTOKU': '長徳', | |
'choutoku': '長徳', | |
'chotoku': '長徳', | |
'SHOURYAKU': '正暦', | |
'SHORYAKU': '正暦', | |
'shouryaku': '正暦', | |
'shoryaku': '正暦', | |
'EISOU': '永祚', | |
'EISO': '永祚', | |
'eisou': '永祚', | |
'eiso': '永祚', | |
'EIEN': '永延', | |
'eien': '永延', | |
'KANWA': '寛和', | |
'kanwa': '寛和', | |
'EIKAN': '永観', | |
'eikan': '永観', | |
'TENGEN': '天元', | |
'tengen': '天元', | |
'TENEN': '天延', | |
'tenen': '天延', | |
'ANNA': '安和', | |
'anna': '安和', | |
'OUWA': '応和', | |
'OWA': '応和', | |
'ouwa': '応和', | |
'owa': '応和', | |
'TENRYAKU': '天暦', | |
'tenryaku': '天暦', | |
'TENKYOU': '天慶', | |
'TENKYO': '天慶', | |
'tenkyou': '天慶', | |
'tenkyo': '天慶', | |
'JOUGAN': '貞観', | |
'JOGAN': '貞観', | |
'jougan': '貞観', | |
'jogan': '貞観', | |
'NINJU': '仁寿', | |
'ninju': '仁寿', | |
'SAIKOU': '斉衡', | |
'SAIKO': '斉衡', | |
'saikou': '斉衡', | |
'saiko': '斉衡', | |
'KASHOU': '嘉祥', | |
'KASHO': '嘉祥', | |
'kashou': '嘉祥', | |
'kasho': '嘉祥', | |
'TENCHOU': '天長', | |
'TENCHO': '天長', | |
'tenchou': '天長', | |
'tencho': '天長', | |
'KOUNIN': '弘仁', | |
'KONIN': '弘仁', | |
'kounin': '弘仁', | |
'konin': '弘仁', | |
'DAIDOU': '大同', | |
'DAIDO': '大同', | |
'daidou': '大同', | |
'daido': '大同', | |
'ENRYAKU': '延暦', | |
'enryaku': '延暦', | |
'HOUKI': '宝亀', | |
'HOKI': '宝亀', | |
'houki': '宝亀', | |
'hoki': '宝亀', | |
'JINGOUKEIUN': '神護景雲', | |
'JINGOKEIUN': '神護景雲', | |
'jingoukeiun': '神護景雲', | |
'jingokeiun': '神護景雲', | |
'TENPYOUJINGO': '天平神護', | |
'TENPYOJINGO': '天平神護', | |
'tenpyoujingo': '天平神護', | |
'tenpyojingo': '天平神護', | |
'TENPYOUHOUJI': '天平宝字', | |
'TENPYOHOJI': '天平宝字', | |
'tenpyouhouji': '天平宝字', | |
'tenpyohoji': '天平宝字', | |
'TENPYOUSHOUHOU': '天平勝宝', | |
'TENPYOSHOHO': '天平勝宝', | |
'tenpyoushouhou': '天平勝宝', | |
'tenpyoshoho': '天平勝宝', | |
'TENPYOUKANPOU': '天平感宝', | |
'TENPYOKANPO': '天平感宝', | |
'tenpyoukanpou': '天平感宝', | |
'tenpyokanpo': '天平感宝', | |
'TENPYOU': '天平', | |
'TENPYO': '天平', | |
'tenpyou': '天平', | |
'tenpyo': '天平', | |
'JINKI': '神亀', | |
'jinki': '神亀', | |
'YOUROU': '養老', | |
'YORO': '養老', | |
'yourou': '養老', | |
'yoro': '養老', | |
'REIKI': '霊亀', | |
'reiki': '霊亀', | |
'WADOU': '和銅', | |
'WADO': '和銅', | |
'wadou': '和銅', | |
'wado': '和銅', | |
'KEIUN': '慶雲', | |
'keiun': '慶雲', | |
'TAIHOU': '大宝', | |
'TAIHO': '大宝', | |
'taihou': '大宝', | |
'taiho': '大宝', | |
'SHUCHOU': '朱鳥', | |
'SHUCHO': '朱鳥', | |
'shuchou': '朱鳥', | |
'shucho': '朱鳥', | |
'TENMU': '天武', | |
'tenmu': '天武', | |
'HAKUCHI': '白雉', | |
'hakuchi': '白雉', | |
'ASUKA': '飛鳥', | |
'asuka': '飛鳥' | |
} | |
@staticmethod | |
def normalize_era(era: str) -> str: | |
"""元号の正規化(頭文字からの変換含む)""" | |
if era in JapaneseEra.ERA_STARTS: | |
return era | |
# 入力文字列をそのまま確認 | |
if era in JapaneseEra.ERA_INITIALS: | |
return JapaneseEra.ERA_INITIALS[era] | |
# 大文字に変換して確認 | |
upper_era = era.upper() | |
if upper_era in JapaneseEra.ERA_INITIALS: | |
return JapaneseEra.ERA_INITIALS[upper_era] | |
raise ValueError(f"不正な元号です: {era}") | |
@staticmethod | |
def to_western_year(era: str, year: int) -> int: | |
normalized_era = JapaneseEra.normalize_era(era) | |
if normalized_era not in JapaneseEra.ERA_STARTS: | |
raise ValueError(f"不正な元号です: {era}") | |
return JapaneseEra.ERA_STARTS[normalized_era] + year - 1 | |
@staticmethod | |
def to_japanese_era(year: int) -> tuple[str, int]: | |
for era, start_year in reversed(JapaneseEra.ERA_STARTS.items()): | |
if year >= start_year: | |
return era, year - start_year + 1 | |
raise ValueError(f"対応する元号が見つかりません: {year}") | |
def main(): | |
print("╭────────────────────────────────────╮") | |
print("│ 年号・西暦変換プログラムなのじゃ! │") | |
print("╰────────────────────────────────────╯") | |
while True: | |
print("\n1: 元号→西暦の変換") | |
print("2: 西暦→元号の変換") | |
print("3: プログラムを終了する") | |
choice = input("\n何をするのじゃ?(1-3を選ぶのじゃ): ") | |
if choice == "1": | |
print("\n元号を入力するのじゃ!") | |
print("(例:令和, R, 平成, H など イニシャルの対応は明治から令和のみで、それ以前はフルネームで入力するのじゃ!)") | |
era = input("元号: ") | |
try: | |
year = int(input("年数を入力するのじゃ(例:5): ")) | |
result = JapaneseEra.to_western_year(era, year) | |
normalized_era = JapaneseEra.normalize_era(era) | |
print(f"\n{normalized_era}{year}年は西暦{result}年なのじゃ!") | |
except ValueError as e: | |
print(f"\nエラーなのじゃ! {e}") | |
elif choice == "2": | |
try: | |
year = int(input("\n西暦を入力するのじゃ(例:2023): ")) | |
era, era_year = JapaneseEra.to_japanese_era(year) | |
print(f"\n西暦{year}年は{era}{era_year}年なのじゃ!") | |
except ValueError as e: | |
print(f"\nエラーなのじゃ! {e}") | |
elif choice == "3": | |
print("\nお疲れ様じゃった!また会おうのじゃ!(`・ω・´)ノ") | |
break | |
else: | |
print("\n1から3の数字を入力するのじゃ!") | |
if __name__ == "__main__": | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment