Py学习  »  Python

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

Adam • 3 年前 • 1536 次点击  

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

  • 输入:日期选择器(日期时间)
  • 输入: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
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/130266
文章 [ 1 ]  |  最新文章 3 年前
Joffan
Reply   •   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

免责声明:未经测试。