直接上代码,比较简单懒得写注释了
def is_leap_year(year):
if(year%4==0 and year%100!=0) or (year%400==0):
return 1
else:
return 0
def get_num_of_day_in_month(year,month):
if month==2:
if is_leap_year(year):
days=29
else:
days=28
elif month in[4,6,9,11]:
days=30
else:
days=31
return days
def get_total_num_of_day(year, month):
yearday = 0
for i in range(1800, year):
if is_leap_year(i):
yearday += 366
else:
yearday += 365
for i in range(1, month):
yearday += get_num_of_day_in_month(year, i)
return yearday
def print_information_title(year,month):
if year < 1800 :
print("小于1800,请重新输入一个年份")
return False
else:
print((str(year)+"年").ljust(10),end="")
print((str(month)+"月").rjust(14))
return True
year=int(input("请输入一个不小于1800年的年份"))
month=int(input("请输入月份"))
if print_information_title(year,month):
week=(get_total_num_of_day(year,month))%7
test = week - 4 if week >= 4 else week + 3
print('日\t一\t二\t三\t四\t五\t六\t')
for i in range(0,test):
print("\t",end="")
for i in range(1,get_num_of_day_in_month(year,month)+1):
if (get_total_num_of_day(year,month)+i)%7==4:
print(i,end="\n")
else:
print(i,end="\t")
else:
pass