カレンダーをpythonで実現(1800年前後)

33723 ワード

検査結果の正確性、推薦ホームページのリンク:
カレンダークレイジー検索
'''
*1800'''
def main():
    year=eval(input("Enter full year(e.g.,2001)"))
    #month=eval(input("Enter month as number between 1 and 12"))
    for i in range(1,13):
        printMonth(year,i)
        print("
---------------------------------"
) 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 getMonthName(month): if month==1: return "January" elif month==2: return "February" elif month==3: return "March" elif month==4: return "April" elif month==5: return "May" elif month==6: return "June" elif month==7: return "July" elif month==8: return "August" elif month==9: return "September" elif month==10: return "October" elif month==11: return "November" else: return "December" ''' * ''' def printMonthBody(year,month): startDay=getStartDay(year,month) for v in range(startDay): print(" ",end=' ') monthDay=getNumberOfDaysInMonth(year,month) for v in range(1,monthDay+1): print(format(v,"4d"),end=' ') if (v+startDay)%7==0: print() ''' * ''' def getStartDay(year,month): #1800/1/1 3 Start_1800_1_1=3 totalDay=getTotalDays(year,month) return (totalDay+Start_1800_1_1)%7 ''' * 1800 1 1 ''' def getTotalDays(year,month): totalDays=0 for v in range(1800,year): if isLeapYear(v): totalDays=totalDays+366 else: totalDays=totalDays+365 for i in range(1,month): totalDays=totalDays+getNumberOfDaysInMonth(year,i) return totalDays ''' * ''' def isLeapYear(year): return (year%100!=0 and year%4==0) or year %400==0 ''' * ''' 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 main()

いくつかの判断が多くなって、1800年前後を実現することができます
'''
*       
'''
def main():
    year=eval(input("Enter full year(e.g.,2001)"))
    #month=eval(input("Enter month as number between 1 and 12"))
    for i in range(1,13):
        printMonth(year,i)
        print("
---------------------------------"
) 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 getMonthName(month): if month==1: return "January" elif month==2: return "February" elif month==3: return "March" elif month==4: return "April" elif month==5: return "May" elif month==6: return "June" elif month==7: return "July" elif month==8: return "August" elif month==9: return "September" elif month==10: return "October" elif month==11: return "November" else: return "December" ''' * ''' def printMonthBody(year,month): startDay=getStartDay(year,month) for v in range(startDay): print(" ",end=' ') monthDay=getNumberOfDaysInMonth(year,month) for v in range(1,monthDay+1): print(format(v,"4d"),end=' ') if (v+startDay)%7==0: print() ''' * ''' def getStartDay(year,month): #1800/1/1 3 Start_1800_1_1=3 totalDay=getTotalDays(year,month) if year>=1800: return (totalDay+Start_1800_1_1)%7 else : return (-totalDay+Start_1800_1_1)%7 ''' * 1800 1 1 ''' def getTotalDays(year,month): totalDays=0 bigYear=1800 if 1800>year else year smallYear =1800 if 1800<year else year for v in range(smallYear,bigYear): if isLeapYear(v): totalDays=totalDays+366 else: totalDays=totalDays+365 if bigYear==year: for i in range(1,month): totalDays=totalDays+getNumberOfDaysInMonth(year,i) else : for i in range(1,month): totalDays=totalDays-getNumberOfDaysInMonth(year,i) return totalDays ''' * ''' def isLeapYear(year): return (year%100!=0 and year%4==0) or year %400==0 ''' * ''' 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 main()