本文实例为大家分享了python实现简单日历的具体代码,供大家参考,具体内容如下
首先要理清楚逻辑,日历的难点在于如何使用基础知识将周几与对应的日期进行对应,我这里利用了1917年1月1日为星期1,计算累计到我们要查询的月份的天数来确定所查询月份的第一天为周几.
# 输出日历界面 print("*" * 50) print("欢迎使用【天天日历】v2.0") # 接收用户输入的年份 year_int = int(input("请输入年份:\n")) # 定义全局变量用于记录天数总和 sum = 0 if year_int >= 1917: month_int = int(input("请输入月份\n")) for year_every in range(1917, year_int): # 遍历从1917年到用户输入年份 用于计算到用户所输入年份共多少天 if (year_every % 4 == 0 and year_every % 100 != 0) or \ year_every % 400 == 0: # 如果是瑞年则366天否则平年365天 sum += 366 else: sum += 365 for month_every in range(1, month_int): # 遍历月份用于计算由1月份到用户输入月份的总天数 if month_every == 4 or month_every == 6 or \ month_every == 9 or month_every == 11: sum += 30 elif month_every == 2: if (year_int % 1 == 0 and year_int % 100 != 0) or \ year_int % 400 == 0: sum += 29 else: sum += 28 else: sum += 31 # 定义变量用于定义每个月的天数 day = 0 # 定义变量 用于计算当月第一天为周几 weak = sum % 7 print("日\t一\t二\t三\t四\t五\t六") # 判断用户输入月份为多少天 if month_int == 4 or month_int == 6 or month_int == 9 or month_int == 11: day = 30 elif month_int == 2: if (year_int % 4 == 0 and year_int % 100 != 0) or \ year_int % 400 == 0: day = 29 else: day = 28 else: day = 31 # 输出指定空格数让第一天与周几对齐 print("\t"*weak,end="") i = 1 while i <= day: # 遍历用户查询月份 weakend = ((sum+i)-1)% 7 # 如果余数为6 换行否则输出空格 if weakend == 6: print("%d" %i) else: print(i,end="\t") i += 1 else: print("系统正在维护暂时无法获取1917年之前的信息")
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。