특정 년도, 월, 일 정보를 받아서, 해당 날짜에 대한 요일을 찾는 방법에 대해서 알아보겠습니다.

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일은 월요일입니다.