[python] pytz를 사용하여 주말 및 공휴일을 제외한 비즈니스 날짜 가져오기
안녕하세요! 이번에는 pytz를 사용하여 주말 및 공휴일을 제외한 비즈니스 날짜를 가져오는 방법에 대해 알아보겠습니다. pytz는 파이썬에서 시간대 관련 작업을 수행하는 라이브러리로 많이 사용됩니다.
pytz 설치하기
먼저, pytz를 설치해야 합니다. 다음 명령어를 사용하여 설치할 수 있습니다:
pip install pytz
비즈니스 날짜 가져오기
pytz를 사용하여 주말 및 공휴일을 제외한 비즈니스 날짜를 가져오려면 다음과 같은 단계를 따르면 됩니다:
- 필요한 라이브러리 가져오기
- 주말을 제외한 비즈니스 날짜를 계산하는 함수 만들기
- 공휴일을 제외한 비즈니스 날짜를 계산하는 함수 만들기
필요한 라이브러리 가져오기
import pytz
from datetime import datetime, timedelta
먼저, pytz와 datetime 라이브러리를 가져옵니다.
주말을 제외한 비즈니스 날짜 계산하기
def get_business_date(start_date, num_days):
tz = pytz.timezone('Asia/Seoul')
current_date = start_date
business_days = 0
while business_days < num_days:
current_date += timedelta(days=1)
if current_date.weekday() < 5:
business_days += 1
return current_date.astimezone(tz)
위 함수는 주말을 제외한 비즈니스 날짜를 계산하는 역할을 합니다. start_date는 시작 날짜이고, num_days는 가져올 비즈니스 날짜의 수입니다. 현재는 Asia/Seoul 시간대를 사용하도록 설정되어 있습니다.
공휴일을 제외한 비즈니스 날짜 계산하기
def get_business_date_without_holidays(start_date, num_days, holidays):
tz = pytz.timezone('Asia/Seoul')
current_date = start_date
business_days = 0
while business_days < num_days:
current_date += timedelta(days=1)
if current_date.weekday() < 5 and current_date not in holidays:
business_days += 1
return current_date.astimezone(tz)
위 함수는 공휴일을 제외한 비즈니스 날짜를 계산하는 역할을 합니다. start_date와 num_days 매개변수는 get_business_date 함수와 동일하며, holidays 매개변수는 제외할 공휴일 목록입니다.
사용 예시
start_date = datetime(2022, 1, 1)
num_days = 5
holidays = [
datetime(2022, 1, 3),
datetime(2022, 1, 6)
]
business_date = get_business_date(start_date, num_days)
business_date_without_holidays = get_business_date_without_holidays(start_date, num_days, holidays)
print(business_date)
print(business_date_without_holidays)
위 코드는 start_date부터 num_days일 동안의 비즈니스 날짜를 가져오는 예시입니다. holidays 리스트에는 제외할 공휴일을 추가하면 됩니다.
이제 pytz를 사용하여 주말 및 공휴일을 제외한 비즈니스 날짜를 가져오는 방법을 알게 되었습니다. pytz의 다양한 기능을 활용하여 날짜 및 시간 작업을 보다 효율적으로 수행할 수 있습니다. 자세한 내용은 pytz 공식 문서를 참고하시기 바랍니다.