日历输出
小明考试遇见《活了多少天》这个题,遗憾的是没有做出来,但是经过考试后的讲解小明已经完全懂得了这个题,并且会熟练的做出此题,还保证以后遇见此类题,一定能够做出来。并且还想在做一次。
已知2007年1月1日为星期一。 设计一函数按照下述格式打印2007年以后(含)某年某月的日历,2007年以前的拒绝打印。 为完成此函数,设计必要的辅助函数可能也是必要的。其中输入为年分和月份。 比如输入2007 1
则输出为
【输入形式】
输入数据包含多组,每组有两个整数m,n。m(m > 2007)表示年份,n表示月份,输入数据保证合法。
【输出形式】 对于每组输出数据,按照题目中的格式输出,日历中每个数字占三列。 【样例输入】
2010 9
【样例输出】
【提示】 短线“-”个数要与题目中一致,否则系统会判为错误。输出时每个数字占三列,在强调一次。
a,b=map(int,input().split())
def judge(y,m):
if m==2:
if y%4==0 and y%100!=0:
return 29
elif y%400==0:
return 29
else:
return 28
elif m==4 or m==6 or m==9 or m==11:
return 30
else:
return 31
def fun(y,m):
s = 0;
for i in range(1,m):
s+=judge(y,i)
for i in range(2007,y):
if i%4==0 and i%100!=0:
s+=366
elif i%400==0:
s+=366
else:
s+=365
return (s + 1)% 7
print('---------------------')
print(' Su Mo Tu We Th Fr Sa')
print('---------------------')
start = fun(a, b);
days = judge(a, b);
for i in range(1,days + start+1):
if i <=start:
print(' ',end='')
else:
print('{:>3d}'.format(i - start),end='')
if i%7==0:
print()
print()
print('---------------------')
|