用Python写一个日历
计算公式w=(d+2*m+3*(m+1)//5+y+y//4-y//100+y//400)%7+1
如果是一月或者二月的话,需要把1、2月当做上一年的13、14月使用
代码def get_week_with_date(y,m,d): '''根据年月日计算星期几''' #把1、2月当做上一年的13、14月使用 if m==1 : y=y-1 m=13 elif m==2: y=y-1 m=14 #使用公式计算出星期几并返回 w=(d+2*m+3*(m+1)//5+y+y//4-y//100+y//400)%7+1 return w def is_leap_year(y): '''判断是否为闰年''' if year%400==0 or (year%4==0 and year%100!=0): return True else: return False def get_days_in_month(y,m): '''获取指定月份的天数''' if m in [1,3,5,7,8,10,12]: return 31 elif m in [4,6,9,11]: return 30 else: if is_leap_year(y) : return 29 else: return 28 '''1.提示用户输入年月''' year=int(input("请输入年份:")) month=int(input("请输入年份:")) '''2.计算这个月有多少天''' days=get_days_in_month(year, month) '''3.按照指定格式显示日期''' print("一 二 三 四 五 六 日") print("-"*20) for i in range(1,days+1): w=get_week_with_date(year, month, i) if i==1 : print(f"{' '*(w-1)*3}",end="") else: if w==1 : print("") print(f"{i:02d}",end=" ") print("")输出效果
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)