python 打印万年历

题目:打印万年历


已知条件

  1. 闰年条件:能被4整除且不能被100整除,或者能被400整除
  2. 1900年1月1日 是周一

解题思路

  1. 判断闰年;
  2. 判断当月有多少天;
  3. 这个月的1号是从周几开始的;
  4. 格式化打印日历。

解题代码

#判断年份是否为闰年
def is_leap_year(year):
    if (year%4==0 and year%100!=0) or (year%400==0):
        return True
    else:
        return False
#判断月份有多少天
def get_month_day(year,month):
    days=31
    if month in [4,6,9,11]:
        days=30
    elif month == 2:
        if is_leap_year(year):
            days=29
        else:
            days=28
    return days
#求输入年份和月份日期总天数
def get_days(year,month):
    totaldays=0
    for i in range(1900,year):
        if is_leap_year(i):
            totaldays+=366
        else:
            totaldays+=365
    for i in range(1,month):
        totaldays+=get_month_day(year,i)
    return totaldays
#主程序
if __name__ == '__main__':
    year = input('请输入年份:')
    month = input('请输入月份:')
    try:
        year = int(year)
        month = int(month)
        if month < 1 or month > 12:
            print('月份输入错误,请重新输入')
            continue
    except:
        print('年份或月份输入错误,请重新输入')
        continue
    break
    print('日\t一\t二\t三\t四\t五\t六')
    count = 0
    for i in range((get_days(year,month)%7)+1):
        print('\t',end='')
        count+=1
    for i in range(1,get_month_day(year,month)+1):
        print(i,end='')
        print('\t',end='')
        count+=1
        if count%7 ==0:
            print('/n')
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Python 中一个线程对应于C语言中的一个线程 GIL 使得同一时刻只有一个线程在一个CPU内核上执行字节码。我...
    青穗黄阅读 374评论 0 0
  • 感觉终于有时间来补作业了,漫长的六天工作日迎来了短暂的休息。闲话不多说,直接写心得。没有时间敲代码的时候就在本子上...
    安sir君阅读 589评论 2 3
  • 0.linux启动的步骤 设备加电----》BIOS自检-----》grub引导启动-----》加载内核----》...
    萌面大叔2阅读 798评论 0 1
  • 上一次作业完成了第一题的同学,还需要以下的第一,二题。(1组) 一、 求1000以内的完全数有哪些 如果一个数恰好...
    Python课程作业阅读 482评论 0 1
  • 第一章数和数的运算 一概念 (一)整数 1整数的意义 自然数和0都是整数。 2自然数 我们在数物体的时候,用来表示...
    meychang阅读 2,669评论 0 5