[python] pytz를 사용하여 특정 시간대와 지정된 주기 간의 비즈니스 시간 범위 가져오기

파이썬에서 pytz 라이브러리를 사용하여 특정 시간대와 지정된 주기 간의 비즈니스 시간 범위를 가져오는 방법을 알아보겠습니다.

pytz란?

pytz는 파이썬에서 시간대(datetime) 정보를 처리하기 위한 라이브러리입니다. 이 라이브러리를 사용하면 월간 시간대 변경, 특정 주기의 비즈니스 시간 계산 등과 같은 시간 관련 작업을 더 쉽게 처리할 수 있습니다.

예제 코드

다음은 pytz를 사용하여 특정 시간대와 지정된 주기 간의 비즈니스 시간 범위를 가져오는 예제 코드입니다.

import pytz
from datetime import datetime, timedelta

def get_business_time_range(start_datetime, end_datetime, timezone, frequency):
    # 지정된 시간대로 객체 생성
    tz = pytz.timezone(timezone)

    current_datetime = tz.localize(start_datetime)
    business_time_range = []
    
    while current_datetime <= end_datetime:
        # 비즈니스 시간인지 확인하여 범위에 추가
        if current_datetime.weekday() < 5:  # 월요일(0)부터 금요일(4)까지
            business_time_range.append(current_datetime)
        
        # 다음 시간으로 이동
        current_datetime += timedelta(minutes=frequency)
    
    return business_time_range

# 예제 사용
start_datetime = datetime(2022, 5, 16, 9, 0)
end_datetime = datetime(2022, 5, 16, 17, 0)
timezone = 'Asia/Seoul'
frequency = 30  # 30분 단위로 비즈니스 시간 범위 생성

business_time_range = get_business_time_range(start_datetime, end_datetime, timezone, frequency)

# 결과 출력
for dt in business_time_range:
    print(dt)

위의 코드에서는 get_business_time_range 함수를 정의하여 비즈니스 시간 범위를 생성합니다. 함수의 인자로 시작일시, 종료일시, 시간대, 주기를 받습니다. 주어진 시작일시와 종료일시 사이의 시간이 비즈니스 시간(월요일부터 금요일까지 오전 9시부터 오후 5시까지)인 경우, 해당 시간을 비즈니스 시간 범위에 추가합니다. 모든 시간은 지정된 시간대로 처리됩니다.

위의 예제에서는 주어진 시작일시와 종료일시에 대해 30분 단위로 비즈니스 시간 범위를 생성하여 출력하고 있습니다.

참고 자료