pythonカレンダーの印刷

1578 ワード

カレンダーの印刷
既知の条件
  • 閏年条件:4で割り切れる100で割り切れない、または400で割り切れる
  • .
  • 1900年1月1日月曜日
  • 問題を解く構想.
  • は閏年を判断する.
  • 当月が何日あるかを判断する.
  • 今月の1日は何曜日からですか.
  • 印刷カレンダをフォーマットします.

  • 解題コード
    #         
    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')