[Python] 년, 월, 일 받아서 요일 출력
June 30, 2024
특정 년도, 월, 일 정보를 받아서, 해당 날짜에 대한 요일을 찾는 방법에 대해서 알아보겠습니다.
1. datetime과 strftime()를 이용한 방법
아래와 같이 년, 월, 일을 입력 받고, 그 날짜에 해당하는 요일을 가져올 수 있습니다.
datetime(year, month, day)
: 입력 받은 날짜에 대한 datetime 객체 생성date_obj.strftime("%A")
:%A
는 날짜에 대한 요일을 문자열로 생성하여 리턴
from datetime import datetime
# 년, 월, 일 입력 받기
year = 2023
month = 9
day = 11
# 입력받은 날짜를 datetime 객체로 변환
date_obj = datetime(year, month, day)
# 요일 출력
day_of_week = date_obj.strftime("%A")
print(f"{year}년 {month}월 {day}일은 {day_of_week}입니다.")
Output:
2023년 9월 11일은 Monday입니다.
만약 사용자로부터 년, 월, 일을 입력받고 싶다면 아래와 같이 input을 사용할 수 있습니다.
year = int(input("년을 입력하세요: "))
month = int(input("월을 입력하세요: "))
day = int(input("일을 입력하세요: "))
2. 요일을 영어가 아닌 한글로 출력
strftime("%A")
은 요일을 영어로 출력하였는데, 만약 한글로 출력하고 싶다면 요일 정보를 받아서, 한글로 요일이 정의된 리스트를 만들어서 매핑을 해야 합니다.
datetime.weekday()
는 요일 정보를 0~6의 값으로 리턴(0은 월요일 6은 일요일)days = ["월요일", "화요일", "수요일", "목요일", "금요일", "토요일", "일요일"]
처럼 요일 값 0에서 6에 해당하는 한글 요일 이름 정의day_of_week = days[date_obj.weekday()]
로 요일 값을 한글 이름으로 변경
from datetime import datetime
# 년, 월, 일 입력 받기
year = 2023
month = 9
day = 11
# 입력받은 날짜를 datetime 객체로 변환
date_obj = datetime(year, month, day)
# 요일 출력
days = ["월요일", "화요일", "수요일", "목요일", "금요일", "토요일", "일요일"]
day_of_week = days[date_obj.weekday()]
print(f"{year}년 {month}월 {day}일은 {day_of_week}입니다.")
Output:
2023년 9월 11일은 월요일입니다.