休向江南问故家 2021-11-13 16:10 采纳率: 100%
浏览 302
已结题

大学Python任务:日期汉字格式转换

img

img

编写程序,用户输入阿拉伯数字的日期,转换为汉字的日期。
例如,输入2021/2/25,输出二零二一年二月二十五日

  • 写回答

3条回答 默认 最新

  • shadowsland 2021-11-13 16:48
    关注

    逻辑:
    1.定义一个字典对应数字和汉字做数字和汉字的转换
    2.将两个/分别转成年和月,在最后加上日
    参考代码:

    date_map = {'0': '零', '1': '一', '2': '二', '3': '三', '4': '四', '5': '五', '6': '六', '7': '七', '8': '八','9': '九'}
    def dateTrans(date):
        date_cn = list(date)
        # 处理数字日期
        for i in range(len(date)):
            if date[i] in date_map:
                date_cn[i] = date_map[date[i]]
        # 处理年月日
        year = date.find('/')
        month = date.rfind('/')
        date_cn[year] = '年'
        date_cn[month] = '月'
        date_cn.append('日')
    
        # 处理日,兼容月份只有一位数情况
        if (month == 7 and len(date) == 10) or (month == 6 and len(date) == 9):
            if date_cn[month+1] == '零':
                date_cn.pop(month+1)
            elif date_cn[month+1] == '一':
                date_cn[month+1] = '十'
            else:
                date_cn.insert(month+2, '十')
    
        # 处理月
        if month == 7:
            if date_cn[5] == '零':
                date_cn.pop(5)
            elif date_cn[5] == '一':
                date_cn[5] = '十'
    
        return ''.join(date_cn)
    
    if __name__ == '__main__':
        date = '2021/12/02'
        date_cn = dateTrans(date)
        print(date_cn)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月21日
  • 已采纳回答 11月13日
  • 创建了问题 11月13日

悬赏问题

  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了