Python - 从输入日期开始添加或减去 N *Business* 天

Python - Add OR Subtract N *Business* Days from Date Input

我正在尝试制作一个函数,将 减去 business 天的日期。我有一个包含以下内容的表格:

HURDLE: 我只能使用 datetime 和 timedelta - 没有 numpy,pandas 等。下面的代码有效,但是,它只适用于添加工作日.

目标: 如果可能,我想使用一个函数来计算 business 天,并使用正数或负数确定 business 天计算是加法还是减法的整数。下面的代码有效,但是,它只适用于正整数输入,并且只增加工作日。

非常感谢任何帮助。谢谢。

from datetime import datetime, timedelta

def bizday_calc_func(self, start_date, num_days):
    my_start_date = start_date
    my_num_days = num_days
    while my_num_days > 0:
      my_start_date += timedelta(days=1)
      weekday = my_start_date.weekday()
      if weekday >= 5:
        continue
      my_num_days -= 1
    return my_start_date

似乎对您的日常工作稍作调整就可以解决问题:

from datetime import datetime, timedelta

def bizday_calc_func(self, start_date, num_days):
    my_start_date = start_date
    my_num_days = abs(num_days)
    inc = 1 if num_days > 0 else -1
    while my_num_days > 0:
      my_start_date += timedelta(days=inc)
      weekday = my_start_date.weekday()
      if weekday >= 5:
        continue
      my_num_days -= 1
    return my_start_date

免责声明:未经测试。