生成中文格式的日期
在实际工作中,也许大家需要用到中文日期,不知道你们是怎么处理的???自己动手 丰衣足食。
import time
def myzhongwendate(arg_date='0000-00-00'):
if arg_date == '0000-00-00':
mydate = time.strftime('%Y-%m-%d', time.localtime()) # 获取当前的日期,返回字符型数据,如:"2023-12-22"
else:
mydate = arg_date
mydict_a = {'0': '〇', '1': '一', '2': '二', '3': '三', '4': "四",
'5': '五', '6': '六', '7': '七', '8': '八', '9': '九', }
# 定义一个字典 mydict_a ,用来处理年份
_my_return_text = ''
# 定义一个临时的字符型变量,用来存放生成的日期
for i in mydate.split('-'):
_my_return_text += mydict_a
# 年份中各个数字进行处理
_my_return_text += '年'
# 处理年份结束。
mydict_shiwei = {'0': '', '1': '十', '2': '二十', '3': '三十'}
# 十位数的处理方式
mydict_gewei = {'0': '', '1': '一', '2': '二', '3': '三', '4': "四",
'5': '五', '6': '六', '7': '七', '8': '八', '9': '九', }
# 个位数的处理方式
_my_return_text = _my_return_text + mydict_shiwei] + mydict_gewei[
mydate.split('-')] + "月"
# 处理年月完成
_my_return_text = _my_return_text + mydict_shiwei] + mydict_gewei[
mydate.split('-')] + "日"
# 处理年月日完成
return _my_return_text
if __name__ == "__main__":
print(myzhongwendate('2001-01-28')) # 指定时间生成 中文日期
# 输出结果: 二〇〇一年一月二十八日
print(myzhongwendate()) # 默认生成当天的中文日期
# 输出结果: 二〇二三年十二月二十二日
本帖最后由 苏紫方璇 于 2023-12-24 22:13 编辑
def arabic_to_chinese_number(number):
"""将阿拉伯数字转换为中文数字"""
chinese_numerals = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九"]
return ''.join(chinese_numerals for digit in str(number))
def chinese_date_format(year, month, day):
"""将年、月、日转换为完全的中文日期格式"""
# 年份转换
year_chinese = arabic_to_chinese_number(year) + "年"
# 月份转换,10以上和10以下的月份处理方式略有不同
if month < 10:
month_chinese = arabic_to_chinese_number(month) + "月"
else:
month_chinese = "十" if month == 10 else "十" + arabic_to_chinese_number(month % 10) + "月"
# 日的转换,分为1-9、10、11-19和20-31三种情况
if day < 10:
day_chinese = arabic_to_chinese_number(day) + "日"
elif day == 10:
day_chinese = "十日"
elif day < 20:
day_chinese = "十" + arabic_to_chinese_number(day % 10) + "日"
else:
day_chinese = arabic_to_chinese_number(day // 10) + "十" + arabic_to_chinese_number(day % 10) + "日" if day % 10 != 0 else arabic_to_chinese_number(day // 10) + "十日"
return year_chinese + month_chinese + day_chinese
# 使用当前日期来测试函数
current_year = now.year
current_month = now.month
current_day = now.day
chinese_date = chinese_date_format(current_year, current_month, current_day)
chinese_date()
excel就有这个功能啊,我一开始也想用代码解决,后来想想,VBA的适用面更广泛,于是琢磨VBA的写法,OFFICE都可以用,这样更受欢迎 过些日子清闲了也学学,看现在比较流行 学习了,谢谢 我是直接手写的中文日期 虽然用不上,但是学学也挺有意思 学习了,对我来说作用不是太大:lol 学习了,谢谢 qfxldhw 发表于 2023-12-22 18:23
def arabic_to_chinese_number(number):
"""将阿拉伯数字转换为中文数字"""
chinese_numerals =...
报错NameError: name 'now' is not defined. Did you mean: 'pow'? FormatStr 格式化字符串格式不是更简单
页:
[1]
2