[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로 설정하였지만, 원하는 시간대로 변경하여 사용해야 합니다. 또한, 예시로 주어진 날짜는 미래의 날짜로 설정되어 있습니다. 실제로 동작하는 날짜에 맞게 변경하여 사용해야 합니다.

이러한 방식으로 pytzdatetime을 사용하여 특정 날짜의 주어진 요일로의 다음 날짜를 구할 수 있습니다.

참고문서: