본문 바로가기
IT 이것저것/파이썬python

파이썬python 요일 계산 프로그램을 짜 보았다.

by KaNonx카논 2017. 4. 27.
반응형

파이썬python 요일 계산 프로그램을 짜 보았다.

 

드디어 중간고사가 끝났습니다.

 

하.. 정말 끝나지 않을 것 같던 문제와 씨름하면서 인생에 대해서 다시금 생각해 보게된

 

뜻깊은 나날이었죠...

 

2017/04/23 - 파이썬Python 성적 처리 프로그램을 작성해 보았다!

 

중간 고사 때 쓴 성적 처리 프로그램은

 

당일날에도 문제없이 잘 작동 했습니다.

 

 

하지만, 다음에 주어진 난관이 있으니..

 

그거슨 바로, 요일 계산 프로그램이었습니다... ㅠㅠㅠㅠㅠㅠㅠㅠ

 

하, 정말 수학적인 요소를 생각하는건 젬병이라서 머리에 쥐가 날 것 같습니다...

 

 

일단은 교수님께서 스타트라인을 끊어 주셨습니다.

 

year = int(input("연도를 입력하시오 : "))
month = int(input("월을 입력하시오 : "))
day = int(input("일을 입력하시오 : "))
month_days = [0,31,28,31,30,31,30,31,30,31,30,31,30]
total_days = 0

 

음, 이렇게요

 

소스는 다 나와있다고 하는데 솔직히 어떻게 건드려야 될지 모르겠습니다...ㅋㅋㅋ

 

일단 포인트는 윤년을 계산해야 한다는 것이네요

 

for year_item in range(1, year):
    total_days = total_days + 365
     
    if year_item % 400 == 0:
        total_days = total_days + 1           
    elif year_item % 100 == 0:
        pass           
    elif year_item % 4 == 0:
        total_days = total_days + 1           
    else:
        pass

 

400으로 나누어지는 년도는 윤년이고

 

100으로 나누어지는 년도는 윤년이 아니고

 

4로 나뉘어지는 년도는 윤년입니다.

 

이걸 생각해서 if 문을 구성해 보았습니다.

 

400과 4로 나뉘어 떨어질 때는 +1을 하는 거죠~

 

게다가 100으로 나뉘어 떨어질 때나 혹은 그 이외의 경우에는

 

        total_days = total_days + 0를 적으면 되나, 아무런 결과를 가져오지 못하는

무의미한 문법이므로

 

pass를 대신 써 줍니다.

 

 

 

 

for month_index in range(1, month):
    total_days = total_days + month_days[month_index]
   
total_days = total_days + day

 

 

다음은 월을 생각해 볼 차례네요

 

월은 위의 month_days = [0,31,28,31,30,31,30,31,30,31,30,31,30] 에서 값을 가져와서 대입하는 식으로

 

계산하게 됩니다.

 

그 다음이 날을 계산하는 문법!

 

이렇게 나열해 놓으니 은근히 쉬운것 같긴한데..

 

막상 만들어 보라면 눈 앞이 캄캄하겠지요 ㅠㅠㅠㅠㅠㅠ

 


print(year,"년",month,"월",day,"일", total_days)
print(total_days % 7)

 

 

마지막, 값을 도출하는 부분입니다.

 

여기에서 0이 나오면 일요일 1이 나오면 월요일 ~~이란 식입니다.

 

하지만!

 

이 프로그램에는 중대한 논리적 오류가 있습니다!!

 

이 논리적 오류를 찾고 풀어오라는 것이

 

이번 과제의 내용인데요.. 한 번 깊은 고민을 해 봐야겠습니다....

 

 

 

-

반응형

댓글