python 打印日历

用户输入年和月,第一行为星期的缩写,每周从周日开始

year = int(input())
month = int(input())

days = 0 #统计天数
count = 0 #用于打印时的计数
k = 0 #用于循环
m=1 #用于计算天数

def year1(n): #判断是否为闰年,
    if (n%4==0 and n%100!=0) or n%400==0 :
        return True
    else:
        return False

def print1(month,count): #打印日历的函数
    if month == 1 or month == 3 or month == 5 or month == 7 or month == 8 or month == 10 or month == 12:
        for i in range(1,32): #打印31天
            print(i,"\t",end='')
            count+=1
            if count%7==0:print("\n")  #每逢7的倍数则换行
    elif month == 2:
        if year1(year) == True:
            for i in range(1, 30):
                print(i, "\t", end='')
                count += 1
                if count % 7 == 0: print("\n")
        else:
            for i in range(1, 29):
                print(i, "\t", end='')
                count += 1
                if count % 7 == 0: print("\n")
    else:
        for i in range(1, 31):
            print(i, "\t", end='')
            count += 1
            if count % 7 == 0: print("\n")

if year<2021: #在2021年之前,本题使用2021年的一月一号做基准
    for i in range(year,2021):#把输入的年到2021年中的天数求和
        if year1(i) == True:
            days = days + 366
        else:
            days = days + 365
    while month<=12: #对该月到一月的天数求和
        if month==1 or month==3 or month==5 or month==7 or month==8 or month==10 or month==12:
            days = days + 31
        elif month==2:
            if year1(year)==True:
                days = days+29
            else:
                days = days+28
        else:
            days = days+30

        month = month+1
    if year1(year)==True: #减去输入那年的天数
        days=days-366
    else:
        days=days-365
    print("Sum\tMon\tTue\tWed\tThu\tFri\tSat") #打印
    if (days%7)<=5:
        for j in range(0,5-(days%7)):
            print("\t",end='')
            count = count+1
    else:
        print("\t"*6)
    print1(month,count)

if year>=2021:
    for i in range(2021,year+1):
        if year1(i) == True:
            days = days + 366
        else:
            days = days + 365
    while m<month:
        if m==1 or m==3 or m==5 or m==7 or m==8 or m==10 or m==12:
            days = days + 31
        elif m==2:
            if year1(year)==True:
                days = days+29
            else:
                days = days+28
        else:
            days = days+30
        m=m+1
    if year1(year)==True:
        days=days-366
    else:
        days=days-365
    print("Sum\tMon\tTue\tWed\tThu\tFri\tSat")
    if (days % 7) <= 1:
        for j in range(0, 5 + (days % 7)):
            print("\t",end='')
            count+=1
    else:
         for k in range(0,(days%7)-2):
             print("\t",end='')
             count+=1
    print1(month,count)

  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用Python打印日历时,可以通过编写程序来实现。以下是一种简单的实现方法,其中包含了几个函数来实现不同的功能。 首先,可以使用一个函数来判断给定的年份是否为闰年,并返回True或False。可以使用以下代码实现is_leap_year函数。 接下来,可以使用一个函数来获取每个的天数。该函数接收年份和份作为参数,并根据闰年和非闰年的情况返回相应的天数。可以使用以下代码实现get_num_of_days_in_month函数。 然后,可以使用一个函数来计算从1800年11日至指定日期的总天数。该函数接收年份、份和日期作为参数,并返回一个表示总天数的整数值。可以使用以下代码实现get_total_num_of_days函数。 接下来,可以使用一个函数来确定每个的第一天是星期几。该函数接收年份和份作为参数,并返回一个表示星期几的整数值。可以使用以下代码实现get_start_day函数。 然后,可以使用一个函数来打印日历的数字部分。该函数接收年份和份作为参数,并按照指定的格式打印日历的数字部分。可以使用以下代码实现print_month_body函数。 最后,可以使用一个函数来打印日历的标题和顶部部分。该函数接收年份和份作为参数,并按照指定的格式打印日历的标题和顶部部分。可以使用以下代码实现print_month_title函数。 通过调用以上的函数,可以实现打印出指定年份和份的日历。可以使用以下代码实现打印日历的主要部分。 请注意,以上只是一种简单的实现方法,具体的实现方式可能因个人需求而有所不同。希望以上的解释能够帮助你理解如何使用Python打印日历

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值