社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Adam • 3 年前 • 1436 次点击  

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

  • 输入:日期选择器(日期时间)
  • 输入: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
 
1436 次点击  
文章 [ 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

免责声明:未经测试。