カレンダーをpythonで実現(1800年前後)
33723 ワード
検査結果の正確性、推薦ホームページのリンク:
カレンダークレイジー検索
いくつかの判断が多くなって、1800年前後を実現することができます
カレンダークレイジー検索
'''
* ( 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()