休向江南问故家 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日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?