Python输入一个年份输出全年日历

技术无罪,分享只为大家共同成长

题目:已知1990年1月1号是星期一,公元1年1月1日也是星期一。要求输出某年的日历。

def isr(year):#判断是否为闰年
    if year % 400 == 0 or year % 4 == 0 and year % 100 != 0:
        return True


def isd(year):#判断输入年份的第一天是周几
    s = 0
    d = 1
    #如果年份大于1900,则通过1900计算;如果小于1900,则通过公元1年计算
    if year >= 1900:
        while year > 1900:
            year -= 1
            if isr(year):
                s += 366
            else:
                s += 365
                #将1900与所给年份之间所有天数求和
    else:
        while year > 1:
            year -= 1
            if isr(year):
                s += 366
            else:
                s += 365
                #将1与所给年份之间的所有天数求和
    d += s % 7
    return d
    


def show(year, d, l):#输出日历
    for i in range(12):
        print(i + 1, "月")
        print("一\t二\t三\t四\t五\t六\t日")
        t = []
        a = 0
        for j in range(1, l[i] + 1):
            t.append(j)
            #将每一个日期写入列表中,用于循环输出
        print("\t"*(d - 1), sep='', end='')
        #用\t控制间隔,end表示不换行
        while a <= len(t) - 1:
            if d <= 7:
                print(t[a], "\t", sep='', end='')
                a += 1
                d += 1
            else:
                print()
                d = 1
        print()


r = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
p = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
year = eval(input("请输入年份:"))
d = isd(year)
if isr(year):
    show(year, d, r)
else:
    show(year, d, p)
  • 11
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值