MINERVA/Python 2022. 8. 15. 08:31
반응형

아래 코드는 특정 날짜를 기준으로 offset day를 구하는 코드 입니다.

이때, working day를 기준으로 해당 날짜를 예제입니다.

 

사용 용례: 오늘을 기준으로 working day 5일전의 날짜는 언제인가?(주말제외)

 

# working days 계산: 오늘 기준 5일전(당일제외) 날짜 구함(단, 주말을 제외)
nBefore = 5
PivotDatetime = datetime.datetime.now()
BeforeDatatime = PivotDatetime - datetime.timedelta(days=nBefore)

# BeforeDatatime 부터  PivotDatetime 으로 주말이 몇번 있는지 확인
nLoop = 0
nOffday = 0
while nLoop < nBefore:
    if CheckWeekend(BeforeDatatime):
        nOffday = nOffday +1
    BeforeDatatime = BeforeDatatime + datetime.timedelta(days=1)
    nLoop = nLoop + 1

#
BeforeDatatime = PivotDatetime - datetime.timedelta(days=(nBefore+nOffday))
strBeforeDay = BeforeDatatime.strftime('%Y%m%d%H%M%S')

#
print(f'{BeforeDatatime} {PivotDatetime}')

주말을 체크하는 함수

# return: Bool
def CheckWeekend(d):
    return d.weekday() > 4

 

반응형
posted by choiwonwoo
: