月历表代码

#显示给定年份的日历
#打印日历函数
def printMonth(year,month):
    printMonthTitle(year,month)
    printMonthBody(year,month)

#打印标题栏显示月份与年份
def printMonthTitle(year,month):
    print("        ",getMonthName(month)," ",year)
    print("---------------------------------------")
    print(" sun  Mon  Tue  Wed  Thu  Fri  Sat")

#打印日历主体
def printMonthBody(year,month):
    startDay=getStartDay(year,month)
    numberOfDaysInMonth=getNumberOfDaysInMonth(year,month)
    i=0
    for i in range(0,startDay):
        print("    ",end=" ")
    for i in range(1,numberOfDaysInMonth+1):
        print(format(i,"4d"),end=" ")
        if (i+startDay)%7==0:
            print()

def getMonthName(month):
    if month==1:
        monthName="January"
    elif month==2:
        monthName="February"
    elif month==3:
        monthName="March"
    elif month==4:
        monthName="April"
    elif month==5:
        monthName="May"
    elif month==6:
        monthName="June"
    elif month==7:
        monthName="July"
    elif month==8:
        monthName="Augest"
    elif month==9:
        monthName="September"
    elif month==10:
        monthName="October"
    elif month==11:
        monthName="November"
    else:
        monthName="December"
    return  monthName

def getStartDay(year,month):
    STRT_DAY_FOR_JAN_1_1800=3
    totalNumberOfDays=getTotalNumberOfDays(year,month)
    return (totalNumberOfDays+STRT_DAY_FOR_JAN_1_1800)%7

def getTotalNumberOfDays(year,month):
    total=0
    for i in range(1800,year):
        if isLeapYear(i):
            total=total+366
        else:
            total=total+365
    for i in range(1,month):
        total=total+getNumberOfDaysInMonth(year,i)
    return total

def getNumberOfDaysInMonth(year,month):
    if(month==1 or month==3 or month==5 or month==7 or month==8 or
       month==10 or month==12):
        return 31
    if(month==4 or month==6 or month==9 or month==11):
        return 30
    if month==2:
        return 29 if isLeapYear(year) else 28
    return 0

def isLeapYear(year):
    return (year%4==0 and year%100 !=0) or year%400==0

def main():
    year=eval(input("请输入一个年份:"))
    month=eval(input("请输入月份:"))
    printMonth(year,month)

main()
 


版权声明:本文为cq3119493696原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。