Pythonでの漢字日付の変換について


先日、プロジェクトをしていたとき、日付の漢字変換について質問がありました.通常、システムが取得する時間はアラビア数字です.例えば、コードに次の文を入力します.
print (datetime.datetime.now().year)

結果は2018.になります.今回のプロジェクトで私が直面した問題は、標準的なWord証明テンプレートにデータベースから検索したデータを追加することです.証明テンプレートの最後は証明当日の日付で、当日の日付を取得するのはもともと簡単なことですが、テンプレートの中では漢字で書くように時間を要求しています.例えば、二〇一八年九月二十九日です.プログラミング開発の経験が少ない私にとって、その時はぼんやりしていました.期初めはPythonの中で相応の変換方法があると思っていましたが、残念ながら調べてみると、書いてある変換方法がないので、仕方なく、自分で1つの方法を書いてこの目標を実現するしかありません.
書き方の前に、変換の考え方を整理しておきました.まず、年、月、日の3つの日付の単位が漢字に変換された後、彼らの読み方と書き方は違います.年は一般的に一人一人が読むもので、例えば今年2019年は読み方も書き方も二〇一九年で、二千一十九年ではなく二〇一九年である.月も日も対応する数字で読みます.例えば、9月29日、読み方と書き方は9月29日で、9月29日ではなく9月29日です.一年の中で月を12ヶ月に分け、毎月28-31の日数があり、以下の状況に分けられます.
ここでは2つの変数を宣言します.それぞれは
 int month
int  day
月数の3つのケースはmonth<10,month=10,month>10(時間はシステムが自動的に取得するので、ここではデフォルトmonth>0 and month<12)
日数の4つのケースはday<10,day==10,1020(時間はシステムが自動的に取得するので、ここではデフォルトday>0 and day<31)
確定した後の具体的なコードは以下の通りです.
# -*- coding: utf-8 -*-
from __future__ import print_function
import datetime
from mailmerge import MailMerge
date_map = {
    0: ' ',
    1: ' ',
    2: ' ',
    3: ' ',
    4: ' ',
    5: ' ',
    6: ' ',
    7: ' ',
    8: ' ',
    9: ' '
}


def chinese2digits(num, type):
    str_num = str(num)
    result = ''
    if type == 0:
        for i in str_num:
            result = '{}{}'.format(result, date_map.get(int(i)))
    if type == 1:
        result = '{} {}'.format(date_map.get(int(str_num[0])), date_map.get(int(str_num[1])))
    if type == 2:
        result = ' {}'.format(date_map.get(int(str_num[1])))
    if type == 3:
        result = ' '
    if type == 4:
        result = '  '
    return result


year =chinese2digits(datetime.datetime.now().year, 0)
print(year)
date_month = datetime.datetime.now().month
if date_month == 10:
    month = chinese2digits(date_month, 3)
    print(month)
if date_month > 10:
    month = chinese2digits(date_month, 2)
    print(month)
if date_month < 10:
    month = chinese2digits(date_month, 0)
    print(month)
date_day = datetime.datetime.now().day
if date_day < 10:
    day = chinese2digits(date_day, 0)
    print(day)
if 10 < date_day < 20:
    day = chinese2digits(date_day, 2)
    print(day)
if date_day > 20:
    day = chinese2digits(date_day, 1)
    print(day)
if date_day == 10:
    day = chinese2digits(date_day, 3)
    print(day)
if date_day == 20:
    day = chinese2digits(date_day, 4)
    print(day)








本文がみんなを助けることができることを望みます.