[python] pytz를 사용하여 특정 날짜의 이전 주어진 요일까지의 시간 수를 계산하는 방법은 무엇인가요?
먼저, datetime
모듈과 pytz
모듈을 임포트하세요:
import datetime
import pytz
이후, 원하는 날짜를 datetime
객체로 변환합니다:
target_date = datetime.datetime(2021, 11, 1)
다음으로, 원하는 요일을 datetime
객체의 weekday()
메서드를 사용하여 숫자로 나타낼 수 있습니다. 일요일부터 월요일까지 순서대로 6부터 0까지의 값이 할당됩니다:
desired_weekday = 2 # 0: 월요일, 1: 화요일, ... , 6: 일요일
이후, 해당 요일부터 타겟 날짜까지의 시간 수와 타임존을 계산합니다:
tz = pytz.timezone('Asia/Seoul')
start_day = target_date.replace(tzinfo=tz)
end_day = start_day + datetime.timedelta(days=1)
마지막으로, 원하는 요일까지의 시간 수를 계산합니다:
diff = (desired_weekday - start_day.weekday()) % 7
desired_datetime = start_day - datetime.timedelta(days=diff)
time_diff = end_day - desired_datetime
time_diff
변수에는 타겟 날짜의 이전 주어진 요일까지의 시간 수가 저장됩니다.
참고로, 위의 코드는 Asia/Seoul
타임존을 기준으로 작성되었으며, 타임존을 바꿀 경우 pytz.timezone()
함수의 인자를 해당 타임존으로 변경해주어야 합니다.