代码之家  ›  专栏  ›  技术社区  ›  Adam

Python-从日期输入中添加或减去N*个工作日*

  •  0
  • Adam  · 技术社区  · 3 年前

    我正在尝试创建一个函数,它将 商业 离约会还有几天。我有一个包含以下内容的表格:

    • 输入:日期选择器(日期时间)
    • 输入:NumberOfDays(int)
    • 按钮:日历日/工作日
    • 输出:最终计算结果

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

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

    非常感谢您的帮助。非常感谢。

    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
    
    1 回复  |  直到 3 年前
        1
  •  1
  •   Joffan    3 年前

    似乎对你的日常生活稍加调整就能奏效:

    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
    

    免责声明:未经测试。