[python] pytz를 사용하여 특정 날짜의 주어진 요일로의 다음 날짜를 구하는 방법은 무엇인가요?
아래는 이를 구현하는 예시입니다:
import pytz
from datetime import datetime, timedelta
def get_next_day_with_weekday(date, weekday):
# 원하는 요일의 숫자 값을 계산합니다 (월요일: 0, 일요일: 6)
target_weekday = {"Monday": 0, "Tuesday": 1, "Wednesday": 2, "Thursday": 3, "Friday": 4, "Saturday": 5, "Sunday": 6}[weekday]
# 주어진 날짜의 시간대를 설정합니다
tz = pytz.timezone('Asia/Seoul') # 시간대를 원하는 값으로 변경해주세요
date = tz.localize(datetime.strptime(date, '%Y-%m-%d'))
# 주어진 날짜 이후의 다음 주어진 요일까지의 날짜를 찾습니다
while date.weekday() != target_weekday:
date += timedelta(days=1)
# 결과를 반환합니다
return date.date()
# 예시 사용법
next_day = get_next_day_with_weekday("2022-01-01", "Monday")
print(next_day) # '2022-01-03' 출력
위의 코드에서는 get_next_day_with_weekday
함수를 정의하여 주어진 날짜와 요일에 대해 다음 날짜를 구하는 로직을 작성하였습니다.
먼저, 주어진 요일에 해당하는 숫자 값을 계산하기 위해 target_weekday
를 설정합니다.
그 다음, 주어진 날짜를 원하는 시간대로 변환하여 date
변수에 저장합니다.
그 후, while
루프를 통해 주어진 날짜 이후에 있는 다음 주어진 요일까지의 날짜를 찾습니다.
마지막으로, 결과를 반환하고 출력합니다.
주의사항: 코드 내에서 시간대를 Asia/Seoul
로 설정하였지만, 원하는 시간대로 변경하여 사용해야 합니다. 또한, 예시로 주어진 날짜는 미래의 날짜로 설정되어 있습니다. 실제로 동작하는 날짜에 맞게 변경하여 사용해야 합니다.
이러한 방식으로 pytz
와 datetime
을 사용하여 특정 날짜의 주어진 요일로의 다음 날짜를 구할 수 있습니다.
참고문서: