|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
各位大神:在网上看到一段代码 输入年份 自动计算天干地支。
myyear = input('请输入年份:')
myyear = int(myyear)
tiangan_list =['甲','乙','丙','丁','戊','己','庚','辛','壬','癸']
dizhi_list =['子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥']
shengxiao_list =['鼠','牛','虎','兔','龙','蛇','马','羊','猴','鸡','狗','猪']
for i in range(myyear,myyear+12):
tiangan =tiangan_list[(i-3) % 10-1]
dizhi=dizhi_list[(i-3) % 12-1]
shengxiao = shengxiao_list[(i % 12)-3-1]
tgdz =tiangan+dizhi
print(i,tgdz,shengxiao,sep=' ')
请问
tiangan =tiangan_list[(i-3) % 10-1] 这句代码中 为什么i-3?
shengxiao = shengxiao_list[(i % 12)-3-1] 这句代码 为啥i%12后 还要减去3 ?
不懂。
请各位指教
之所以减3,是因为公元元年并不是甲子年,公元4年才是甲子年,所以在把公元年份转为天干地支纪年的时候要先减3。
先减3再求余,和先求余再减3结果是一样的。也就是说 (i % 12)-3 和 (i-3 )% 12 结果是一样的。
|
|