이 글에서는 파이썬을 사용해 사용자가 입력한 연도의 첫 번째 날, 즉 1월 1일이 무슨 요일인지 확인하고 출력하는 프로그램을 만들어 보겠습니다. 핵심은 datetime 모듈을 활용하는 것입니다.
알고리즘
프로그램의 동작 순서는 다음과 같습니다.
- datetime 라이브러리를 임포트합니다.
- 사용자로부터 연도를 입력받습니다.
- datetime.datetime() 함수에 연도, 월(1), 일(1)을 매개변수로 전달하여 해당 연도의 첫 번째 날짜 객체를 생성합니다.
- strftime() 함수를 사용해 요일을 문자열로 변환하여 화면에 출력합니다.
예제 코드
import datetime
year = int(input("연도를 입력하세요: "))
firstday = datetime.datetime(year, 1, 1)
print("First Day of", year, "=", firstday.strftime("%A"))
위 코드에서 datetime.datetime(year, 1, 1)은 입력받은 연도의 1월 1일에 해당하는 날짜 객체를 생성합니다. 이후 strftime("%A") 형식 지정자를 사용하면 해당 날짜가 속한 요일의 전체 이름(예: Monday, Friday 등)을 영문으로 얻을 수 있습니다.
참고: 요일을 한글로 출력하고 싶다면 아래처럼 리스트를 활용할 수 있습니다.
import datetime
days_ko = ["월요일", "화요일", "수요일", "목요일", "금요일", "토요일", "일요일"]
year = int(input("연도를 입력하세요: "))
firstday = datetime.datetime(year, 1, 1)
print(f"{year}년의 첫날은 {days_ko[firstday.weekday()]}입니다.")
실행 결과
First Day of 2021 = Friday
2021년의 1월 1일은 금요일(Friday)이었기 때문에 위와 같은 결과가 출력됩니다. 이처럼 datetime 모듈만 있으면 별도의 계산 없이 간단하게 특정 날짜의 요일을 확인할 수 있습니다.