728x90
반응형
[key word]
파이썬 실습창을 열 수 있습니다.실습창 열기
만년 달력
만년달력(Perpetual Calendar)은 임의의 연도에 대한 달력을 만들 수 있는 달력 프로그램을 일컫는 말입니다.
다음의 코드는 #72의 확장으로서 1년치 달력을 12*42 table에 만들어 다단 출력한 것입니다.
코드를 분석하여 이해하세요.
#Perpetual Calendar
#------------------------------------------------------------------------preparation
month='Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec'.split()
week='Sun Mon Tue Wed Thu Fri Sat'
day=[31,28,31,30,31,30,31,31,30,31,30,31]
table=[['.']*42 for i in range(12)]
#-----------------------------------------------------------------------------input
year,dan=2024,3 # year & output_type(type이 12의 약수가 아닌 경우 조정생략하였음)
#---------------------------------------------------------------------------process
day[1]+=year%4==0 or (year%100==0 and year%400!=0)
y=year-1
wd=(y+y//4-y//100+y//400+1)%7
for i in range(12):
for j in range(day[i]):
table[i][j+wd]=j+1
wd=(j+wd+1)%7
#----------------------------------------------------------------------------output
print(f'{year} calendar')
for i in range(0,12,dan):
for m in range(i,i+dan):
print(f'{month[m]:28s} ',end='')
print()
print((week+' '*5)*dan)
print(('-'*27+' '*5)*dan)
for j in range(0,42,7):
for k in range(i,i+dan):
if k>=12:break
for l in range(j,j+7):
w=f'{table[k][l]:>3}'
print(w,end=' ')
print(' '*4,end='')
print()
print('\n'*2)
출력입니다.
코드를 분석하여 이해할 수 있으면 상당한 수준에 도달한 것을 의미합니다.
축하합니다.
안녕!
728x90
반응형
'알고리듬' 카테고리의 다른 글
[알고리듬] #83 라이프 게임 (0) | 2024.06.05 |
---|---|
[알고리듬] #82 방향 검사 (0) | 2024.06.04 |
[알고리듬] #80 다단 출력 (0) | 2024.05.16 |
[알고리듬] #79 파스칼의 삼각형 (0) | 2024.05.07 |
[알고리듬] #78 4N 마방진 (2) | 2024.05.01 |