def is_leapyear( year ):
return True if year % 4 == 0 and year % 100 != 0 or year % 400 == 0 else False
def days_year( year ):
return 366 if is_leapyear( year ) else 365
def days_month( year , month ):
l = [ 31 , 29 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 ]
u = [ 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 ]
return l[ month-1 ]if is_leapyear( year ) else u[ month-1 ]
def get_week( year , month ):
days = 0
if ( 1990 <= year <= 2018 ) or ( 1 <= month <= 12 ) :
for y in range( 1990 , year ):
days += days_year( y )
for m in range( 1 , month ):
days += days_month( year , m )
return ( days + 1 ) % 7
def get_week( year , month ):
days = 0
if ( 1990 <= year <= 2018 ) or ( 1 <= month <= 12 ) :
for y in range( 1990 , year ):
days += days_year( y )
for m in range( 1 , month ):
days += days_month( year , m )
return ( days + 1 ) % 7
while True:
year , month = eval( input( ' Input year and month (year , month): ' ) )
days = 0
if ( 1990 <= year <= 2018 ) or ( 1 <= month <= 12 ):
print( ' {}年{}月'.format(year,month) )
print( ' 日 一 二 三 四 五 六' )
for week in range( get_week( year , month ) ):
print( ' '+' ',end='' )
for day in range( 1 , days_month( year , month ) + 1 ):
print( ' {: <2}'.format( day ) , end='' )
if ( day + get_week( year , month ) ) % 7 == 0 or day == days_month( year , month ) :
print('')
else :
continue