#天数的获取
def getMonthDays(y,m):
if m in {1,3,5,7,8,10,12}:
return 31
elif m in {4,6,9,11}:
return 30
elif m == 2:
if y % 4==0 and y % 100 != 0 or y % 400 == 0:
return 29
else:
return 28
else:
return 0
#星期的获取
def getWeekDay(y,m,d):
if m == 1 or m == 2:
y -= 1
m += 12
#利用蔡勒公式计算对应的星期
w =(y + y // 4 - y // 100 + y // 400 + (13 * m + 8) // 5+d) % 7
return w
#显示日历
def printCalendar(y,m,d):
#显示日历的表格
weekdays = ('星期天','星期一','星期二','星期三','星期四','星期五','星期六')
#星期的返回值
w = getWeekDay(y,m,1)
print('公立{}年{}月'.format(y,m))
print('(该月第一天的星期:{},天数:{})'.format(weekdays[w],days))
print('-' * 50)
for wd in weekdays:
print(' '+ wd, end='')
print()
print('-' * 50)
#显示第一周开头部分的留白
print(' '* w,end='')
#将日期按顺序显示
for day in range(d):
if(w % 7==0) and (w >= 7):
print()
print('{:5d}'.format(day+1),end=' ')
w += 1
print()
#执行程序
year = 2018
month = 2
days = getMonthDays(year,month)
printCalendar(year,month,days)
指定公历年份和月份,并显示相应的日历
最新推荐文章于 2023-04-09 13:55:52 发布