[python] pytz를 사용하여 특정 날짜 범위의 일일 최소 및 최대 비즈니스 시간 계산하기

소개

프로젝트나 작업을 수행할 때, 특정 날짜 범위 내에서 비즈니스 시간을 계산해야 할 때가 많습니다. 이때 pytz 라이브러리를 사용하면 편리하게 일일 최소 및 최대 비즈니스 시간을 계산할 수 있습니다. 이 글에서는 pytz를 사용하여 특정 날짜 범위의 일일 최소 및 최대 비즈니스 시간을 계산하는 방법을 알아보겠습니다.

설치

pytz 라이브러리를 사용하기 위해서는 먼저 설치해야 합니다. 아래의 명령을 사용하여 pytz를 설치할 수 있습니다.

pip install pytz

사용법

다음은 특정 날짜 범위의 일일 최소 및 최대 비즈니스 시간을 계산하는 예제 코드입니다.

from datetime import datetime, time
import pytz

def calculate_business_hours(start_date, end_date, timezone):
    start_time = time(9, 0)  # 비즈니스 시작 시간
    end_time = time(18, 0)  # 비즈니스 종료 시간

    tz = pytz.timezone(timezone)  # 특정 타임존 설정
    business_hours = []  # 비즈니스 시간을 저장할 리스트

    # start_date부터 end_date까지의 날짜를 순회
    for date in range((end_date - start_date).days + 1):
        current_date = start_date + timedelta(days=date)

        # 현재 날짜의 시작 시간과 종료 시간 설정
        start_datetime = tz.localize(datetime.combine(current_date, start_time))
        end_datetime = tz.localize(datetime.combine(current_date, end_time))

        # 비즈니스 시간을 리스트에 추가
        business_hours.append((start_datetime, end_datetime))

    return business_hours

위의 함수를 사용하여 특정 날짜 범위의 일일 최소 및 최대 비즈니스 시간을 계산할 수 있습니다. 아래의 예제는 2021년 1월 1일부터 2021년 1월 5일까지의 비즈니스 시간을 계산하는 예제입니다.

start_date = datetime(2021, 1, 1).date()
end_date = datetime(2021, 1, 5).date()
timezone = 'Asia/Seoul'

business_hours = calculate_business_hours(start_date, end_date, timezone)

for start_time, end_time in business_hours:
    print(f'{start_time} - {end_time}')

위의 예제 코드를 실행하면 2021년 1월 1일부터 2021년 1월 5일까지의 비즈니스 시간이 출력됩니다.

마치며

pytz를 사용하여 특정 날짜 범위의 일일 최소 및 최대 비즈니스 시간을 계산하는 방법을 살펴보았습니다. 이를 통해 프로젝트나 작업에 유용한 비즈니스 시간 계산 기능을 구현할 수 있습니다. pytz의 다양한 기능과 다른 일자 및 시간 연산에 대해 더 알고 싶다면 pytz 공식 문서를 참고해보세요.