python计算n个工作日之后的日期(不考虑法定节假日)

# -*- 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值