• 大小: 5KB
    文件类型: .py
    金币: 1
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: Python
  • 标签: Python  

资源简介

完整实现日历,精简程序实现,函数的深入应用,健壮性的体现

资源截图

代码片段和文件信息

#!/usr/local/bin/python
# encoding: utf-8
‘‘‘
Created on 2017年3月4日

test -- 软件流程开发学习 -- test6.13 in Page157

@author:     Eric

@copyright:  2017 organization_name. All rights reserved.

@contact:    xj_lin@protonmail.com

@note:    根据输入年份和月份显示相应的当年当月日历,函数抽象和逐步求精,采用分治方法实现每一步功能
‘‘‘
def Calendar(monthyear):
    printMonthtitle(monthyear)
    printMonthBody(monthyear)

def printMonthBody(monthyear):
    isloop = isLeap(year)
    #2017.1.1 is Sunday 0(7)Sun - Mon :0 - 6
    #在2017.1.1之前的计算星期几:2017.1.1当天是周日即0(7),由0(7)减去(差距的天数模7)得到的就是所求日子为星期几
    #在2017.1.1之后的计算:相差天数加上0再模7即可(求相差天数时不可记当天,如:2017.3.4与1.1的相差天数是31+28+3)
    #因为日历是一个月的,所以相差天数就是之前的所有月份之和
    total_day = getTotalNumofDays(monthyear)
    #print(“total_day is:“total_day)
    #判断第一天是周几
    if year >= 2017:
        start_day = total_day % 7
    else:
        start_day = 7 - total_day % 7
    #print(“start_day is:“start_day)
    #输出日历
    printCalendar(yearmonthstart_day)
    
def printCalendar(yearmonthday):
    i = 1
    if isLeap(year):
        if month == 2:
            month_day = 29
        elif month in [135781012]:
            month_day = 31
        else:
            month_day = 30
    else:
        if month == 2:
            month_day = 28
        elif month in [135781012]:
            month_day = 31
        else:
            month_day = 30
    #start_day位置标记
    j = 0
    for j in range(0day):
        print(“    “end=““)
    if day == 6:
        print(format(i“4d“))
    else:
        print(format(i“4d“)end=““)
    #calendar输出
    while i < month_day:
        i += 1
        day += 1
        if (day % 7) == 6:
            print(format(i“4d“))
        elif day % 7 == 0:
            print(format(i“4d“)end=““)
        else:
            print(format(i“4d“)end=““)
    
def getTotalNumofDays(monthyear):
    total_day = 0
    if year >= 2017:
        loop = year - 2017
        y = 2017
        while loop > 0:
            if isLeap(y):
                total_day += 366
            else:
                total_day += 365
            loop -= 1
            y += 1
        m = 1
        while m < month:#比2017大的

评论

共有 条评论