利用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年之前的信息")
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值