Python实现简易日历:基于1917年基准日的日期计算逻辑
本文介绍使用Python实现简易日历的方法,核心在于利用1917年1月1日为星期一的基准,通过累加年份和月份天数计算目标月份首日星期数。代码涵盖闰年处理、月份天数统计及界面格式化输出,适合初学者理解日期逻辑与基础编程应用。
本文分享了一个使用Python编写的简易日历实现代码,供读者参考学习。
实现的关键在于理清逻辑,难点是如何利用基础知识将星期几与具体日期对应。本方案以1917年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年之前的信息")
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









