python 打印万年历

作者: 高杆python | 来源:发表于2017-05-26 17:45 被阅读1508次

    题目:打印万年历


    已知条件

    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 打印万年历

        本文链接:https://www.haomeiwen.com/subject/zfyxfxtx.html