본문 바로가기
프로그램/Python 1000제

Python 76제] 날짜입력하면 요일구하기

by 건티 2022. 5. 13.
728x90

출처 : 반크_세계유산 석굴암

 

문제]

날짜를 입력하면 요일을 구하는 프로그램을 작성하시오.

단, 라이브러리 함수 사용하지 않고 작성하시오.

1970-01-01은 목요일입니다.

 

참고풀이]

#날짜함수 없이 요일구하기
Months=[0,31,28,31,30,31,30,31,31,30,31,30,31]
Week="월화수목금토일"

#년월일을 입력받는다.
y,m,d=map(int, input("년-월-일을 입력하시오(예:2022-5-13) : ").split('-'))

#1970-1-1(목요일)
yoil=2

#입력한 날짜를 총 일수를 구한다.
days=(y-1970)
if m>1:
    for i in range(1,m):
        days+=Months[i]
days+=d
#윤년을 총 일수에 추가한다.
for i in range(1970,y):
    if((i%4==0 and i%100!=0) or i%400==0):
        days+=1
#입력한 년도에 2월달이 넘었을 경우 윤년이면 일수에 1을 추가한다.
if m>2 and ((y%4==0 and y%100!=0) or y%400==0):
        days+=1

#요일을 구한다.
yoil+=(days%7)
if yoil>=7:
    yoil%=7

#결과를 출력한다.
print(f"{y}년 {m}월 {d}일은 {Week[yoil]}요일입니다.")

 

참고풀이 결과]

 

 

 

 

 

대한민국의 아름다운 영토, 독도의 가을

 

반응형

댓글