# -*- coding: utf-8 -*-
# @Time : 2022/8/24 17:22
# @Author : 小黑战记
# @File : test.py
import datetime
import math
def gzr_cal(date, gzr):
"""
计算任意时间 n个工作日之后的时间
:param date: 开始时间
:param gzr: 几个工作日
"""
week = math.ceil(gzr/5) + 1
day = week * 7
date = datetime.datetime.strptime(date, "%Y-%m-%d")
weekday = date.weekday()
start_date = date - datetime.timedelta(days=weekday)
date_list = [(start_date + datetime.timedelta(days=i)).strftime("%Y-%m-%d") for i in range(day)]
gzr_c = 0
for idx, item in enumerate(date_list):
if idx <= weekday:
continue
if idx % 7 < 5:
gzr_c += 1
if gzr_c == gzr:
return item
if __name__ == '__main__':
result_date = gzr_cal(date="2022-08-07", gzr=6)
print(result_date)
结果:
2022-08-15