Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说请把万年历装进口袋,一个python全搞定,高大上!,希望能够帮助你!!!。
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
Day = {'1':'甲', '2':'乙', '3':'丙', '4':'丁', '5':'戊', '6':'己', '7':'庚', '8':'辛', '9':'壬', '10':'癸'}
Ear = {'1':'寅', '2':'卯', '3':'辰', '4':'巳', '5':'午', '6':'未', '7':'申', '8':'酉', '9':'戌', '10':'亥', '11':'子', '12':'>丑'}
Zod = {'1':'鼠', '2':'牛', '3':'虎', '4':'兔', '5':'龙', '6':'蛇', '7':'马', '8':'羊', '9':'猴', '10':'鸡', '11':'狗', '0':'猪'}
defStock(year):
if year < 0:
year = year + 1
day = (year % 10) - 3
if day <= 0:
day = 10 + day
ear = (year + 7) % 12
if ear == 0:
ear = 12
return Day[str(day)] + Ear[str(ear)]
defZodiac(year):
if year > 0:
zod = (year + 9) % 12
else:
zod = (year + 1 + 9) % 12
return Zod[str(zod)]
import re
import os
os.system('clear')
year = input("\n * 请输入年份: ")
data = list(year)
data = '-'in data[1:]
if (not re.match(r'^[-?0-9]{1,5}
, year)) or data == True:
os.system('clear')
print('\n* 年份输入有误,请重新输入! 范围: -9999 ~ 99999\n')
else:
year = int(year)
stock = Stock(year)
zodiac = Zodiac(year)
if year > 0:
os.system('clear')
print('\n * 公元 %d 年对应天干地支纪年法是: %s%s 年\n' % (year, stock, zodiac))
elif year < 0:
os.system('clear')
print('\n * 公元前 %d 年对应天干地支纪年法是: %s%s 年\n' % (abs(year), stock, zodiac))
else:
os.system('clear')
print('\n* 年份输入有误,请重新输入! 范围: -9999 ~ 99999\n')
备注:本环境基于python3及以上版本
小结:本程序兼顾公元前,公元纪年对应天干地支及十二生肖。(Geek Yi && Peony Lee)
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。