输出万年历

该程序实现了1900年以后的年份和月份的日历打印,包括判断闰年、计算指定日期在当年的天数以及确定月份1号是周几。用户输入年份和月份后,程序会输出当月日历,并展示日期对应的星期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/usr/bin/env python
# -*- coding:utf-8 -*-

# 万年历
# 1900年1月10
# 条件:1900年1月1日是星期1
# 要求输入一个1900年以后的年份和月份,打印当月的日历
# 输入年份是否是闰年
# 计算1900年1月1日到2020年12月31日间间隔了多少天。
# 计算输入月份和日期是当年的第几天
# 确定输入的月份1号是周几
# 总天数%7结果是几代表当月1日就是周几
year = int(input("输入年份"))
moth = int (input("输入月份"))
day = 0
run= 0
rnu =0
yearday = 0
for n in range(1900,year):
        rnu+=1
        if n%4==0 and n%100!=0 or n%400==0:
            run+=1
        ping = rnu - run
        yearday = run * 366 + ping * 365
nru =0
moths = [31,28,31,30,31,30,31,31,30,31,30,31]
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
    moths[1] = 29
    index1 = range(moth-1)
    for i in index1 :
        day = moths[i] + day
else:
    index1 = range(moth-1)
    for i in index1:
        day = moths[i] + day
zongtianshu = day + yearday
xingqi =((zongtianshu)%7)
print("一\t二\t三\t四\t五\t六\t日",)
x = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]
x1 = ""
if (year%4==0 and year%100!=0) or year%400==0:
    x1 = [31,29,31,30,31,30,31,31,30,31,30,31]
    for n in range(xingqi):
        print("   \t", end="")

    for m in range(x1[moth - 1]):

        print(str(x[m]) + " \t", end="")

        if (m + xingqi + 1) % 7 == 0:
            print()
else:
    x1=[31,28,31,30,31,30,31,31,30,31,30,31]
    for n in range(xingqi):
        print("   \t", end="")
    for m in range(x1[moth - 1]):
        print(str(x[m])+" \t", end="")

        if (m + xingqi + 1) % 7 == 0:
            print()
#啊康

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值