公元中文去掉年单位,与年数中文一致

This commit is contained in:
sansen
2026-09-21 13:48:55 +08:00
parent 9ba113ebb6
commit 1a65c070d6
+10 -9
View File
@@ -193,7 +193,8 @@ _gz_era_group = r'(?P<era>' + '|'.join(
# === 数字转中文 === # === 数字转中文 ===
def arabic_to_chinese_year(num: int) -> str: def arabic_to_chinese_year(num: int) -> str:
"""公元年份转中文(逐位体):1662 → 一六六二,-140 → -一四〇。 """公元年份转中文(逐位体):1662 → 一六六二,-140 → -一四〇。
公元年份读作逐位数字,故不适用计数体规则(见 arabic_to_chinese_count)。""" 公元年份读作逐位数字,故不适用计数体规则(见 arabic_to_chinese_count)。
返回值不带"年"单位——字段"公元中文"与"年数中文"一样只给数字写法,单位由前端拼接。"""
digits = "〇一二三四五六七八九" digits = "〇一二三四五六七八九"
if num < 0: if num < 0:
return '-' + ''.join(digits[int(d)] for d in str(abs(num))) return '-' + ''.join(digits[int(d)] for d in str(abs(num)))
@@ -433,7 +434,7 @@ def extract_era_years(text):
"年号": "民国纪年", "年号": "民国纪年",
"年数": year_num, "年数": year_num,
"公元": gregorian, "公元": gregorian,
"公元中文": f"{arabic_to_chinese_year(gregorian)}年", "公元中文": arabic_to_chinese_year(gregorian),
"位置": {"起始": start, "结束": end}, "位置": {"起始": start, "结束": end},
"类型": "民国纪年", "类型": "民国纪年",
} }
@@ -479,7 +480,7 @@ def extract_era_years(text):
"年数": year_in_era, "年数": year_in_era,
"干支": ganzhi, "干支": ganzhi,
"公元": gy_year if gy_year is not None else computed, "公元": gy_year if gy_year is not None else computed,
"公元中文": f"{arabic_to_chinese_year(gy_year if gy_year is not None else computed)}年", "公元中文": arabic_to_chinese_year(gy_year if gy_year is not None else computed),
"位置": {"起始": start, "结束": end}, "位置": {"起始": start, "结束": end},
"类型": "民国纪年(干支)", "类型": "民国纪年(干支)",
} }
@@ -533,7 +534,7 @@ def extract_era_years(text):
"年号": era, "年号": era,
"年数": year_in_era, "年数": year_in_era,
"公元": year_num, "公元": year_num,
"公元中文": f"{arabic_to_chinese_year(year_num)}年", "公元中文": arabic_to_chinese_year(year_num),
"位置": {"起始": start, "结束": end}, "位置": {"起始": start, "结束": end},
"类型": "年号+公元", "类型": "年号+公元",
} }
@@ -592,7 +593,7 @@ def extract_era_years(text):
"原文(简体)": m.group(0), "原文(简体)": m.group(0),
"干支": ganzhi, "干支": ganzhi,
"公元": gy_year, "公元": gy_year,
"公元中文": f"{arabic_to_chinese_year(gy_year)}年", "公元中文": arabic_to_chinese_year(gy_year),
"位置": {"起始": start, "结束": end}, "位置": {"起始": start, "结束": end},
"类型": "干支纪年", "类型": "干支纪年",
} }
@@ -656,7 +657,7 @@ def extract_era_years(text):
"原文(简体)": simplified_text[start:end], "原文(简体)": simplified_text[start:end],
"类型": era_type, "类型": era_type,
"公元": year_num, "公元": year_num,
"公元中文": f"{arabic_to_chinese_year(year_num)}年", "公元中文": arabic_to_chinese_year(year_num),
"位置": {"起始": start, "结束": end}, "位置": {"起始": start, "结束": end},
} }
if ganzhi in _ganzhi_to_offset: if ganzhi in _ganzhi_to_offset:
@@ -713,7 +714,7 @@ def extract_era_years(text):
"年数": year_in_era, "年数": year_in_era,
"干支": ganzhi, "干支": ganzhi,
"公元": gregorian, "公元": gregorian,
"公元中文": f"{arabic_to_chinese_year(gregorian)}年", "公元中文": arabic_to_chinese_year(gregorian),
"位置": {"起始": start, "结束": end}, "位置": {"起始": start, "结束": end},
"类型": "干支纪年", "类型": "干支纪年",
} }
@@ -787,7 +788,7 @@ def extract_era_years(text):
"朝代": dynasty, "朝代": dynasty,
"庙号": temple, "庙号": temple,
"公元": base, "公元": base,
"公元中文": f"{arabic_to_chinese_year(base)}年", "公元中文": arabic_to_chinese_year(base),
"位置": {"起始": start, "结束": end}, "位置": {"起始": start, "结束": end},
"类型": "庙号纪年", "类型": "庙号纪年",
}) })
@@ -858,7 +859,7 @@ def extract_era_years(text):
"年号": era, "年号": era,
"年数": year_num, "年数": year_num,
"公元": gregorian, "公元": gregorian,
"公元中文": f"{arabic_to_chinese_year(gregorian)}年", "公元中文": arabic_to_chinese_year(gregorian),
"位置": {"起始": start, "结束": end}, "位置": {"起始": start, "结束": end},
"类型": "古代纪年", "类型": "古代纪年",
} }