万年历
例题:已知2012年1月25日是星期三,编写一个程序, 输入用“年 月 日”表示的一个2012年1月25日以后的期, 输出该日期是星期几(星期天输出0)。
#累加的做法
monthDays = [-1,31,28,31,30,31,30,31,31,30,31,30,31]#设置一个列表,前面下标为0的值无意义
days = 0 #该变量记录从2012-01-22开始过了多少天
lst = input().split()
year,month,date = int(lst[0]),int(lst[1]),int(lst[2])
for y in range(2012,year): #先累加过掉的整年的天数
if y%4 ==0 and y%100!= 0 or y%400 == 0: #闰年
#普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年。
#世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年
days += 366
else:
days += 365
if year%4 ==0 and year%100!= 0 or year%400 == 0:
monthDays[2] = 29
for i in range(1,month): #再累加year那年过掉的整月的天数
days += monthDays[i]
days += date #累加year年month那个月的天数
days -= 22 #2012年1月22日是星期天。扣掉2012年的前22天
print(days % 7) #星期天算一周的第0天