python日期迭代_计算敏捷项目中迭代时间安排(Python3版)

节奏是敏捷开发的核心,保持合理固定的节奏,能有效的促使各个环节协调统一,高效运行。针对产品的不同周期,方案有所不同。

迭代开发.jpg

通常,我们需要在一个时间盒中去分配一个项目中不同阶段的时间,在项目管理中,我们经常要以人/天来进行计算。

现在让我们来假定一个规则:

一个时间盒里的时间点有 需求,开发,SIT测试,UAT测试,回归测试, 发布

工作日为周一,周二,周三,周四,周五(万恶的工作日。。。)

上一个迭代发版后的一天为需求截止时间

SIT测试完成的时间为需求截止后的5天

UAT和回归测试一共消耗3天

封板时间为发布前一天

看看,我们设定了一个至少6个条件的规则才能算出一个迭代周期。这个时间你是不是已经开始翻着日历开始搬指头了。

日历.jpg

如果,用Python来实现呢?

翻了翻PyPi中的第三方包,发现一个好玩的:business_calendar

其提供了非常简单易用的计算工作日的接口,并允许用户指定特定日期为假期,从而将其从当前的工作日中剔除

项目主页: https://pypi.python.org/pypi/business_calendar/

在该类库中,有workday和businessday的概念:

addbusydays(date, offset) 其将考虑holidays公休假的因素

addworkdays(date, offset) 忽略公休假的因素

busdaycount(date1, date2) 计算两个时间点直接的工作日

range(date1, date2) 返回工作日列表, 考虑假期因素

isworkday(date) 是否是工作日,忽略公休假的因素

isbusday(date) 是否工作日,考虑公休假

isHoliday(date) 是否是假日

from business_calendar import Calendar, MO, TU, WE, TH, FR

import datetime

detester = input("请输入上一个版本结束时间:\n")

thisyear = datetime.datetime.strptime(detester, '%Y-%m-%d').year

thismonth= datetime.datetime.strptime(detester, '%Y-%m-%d').month

thisday= datetime.datetime.strptime(detester, '%Y-%m-%d').day

begindatetime = datetime.datetime(thisyear,thismonth,thisday)

print(begindatetime)

# normal calendar, have holidays

#cal = Calendar(workdays=[MO,TU,WE,TH,FR], holidays=['2018-06-18'])

cal = Calendar(workdays=[MO,TU,WE,TH,FR])

date1 = cal.addbusdays(begindatetime, 1)

print("版本中需求截止时间 %s" % date1)

date2 = cal.addbusdays(date1, 5)

print("版本中SIT测试完成时间 %s" % date2)

date3 = cal.addbusdays(date2, 3)

print("版本中UAT+回归测试完成时间 %s" % date3)

date4 = cal.addbusdays(date3, -1)

print("版本中封板时间 %s" % date4)

下次,再算版本时间的时候,希望小伙伴们能用的上啦~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552193.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

form提交后台注解拿不到数据_浏览器是如何将用户数据发送到服务器的?

今天是刘小爱学习Java的第89天。感谢你的观看,谢谢你。话不多说,开始今天的学习:在学习之前,先思考如下问题:对于浏览器来说:如何将用户数据发送到服务器呢?数据传输的格式是怎么样的呢&#xf…

proxmoxve打造云桌面_微软云电脑Cloud PC曝光:配置一般还不便宜

光纤宽带的普及和提速、5G的兴起,让云电脑、云游戏、云手机等产品和应用红火起来。而微软也正在开发一款名为Cloud PC的云端Windows操作系统,并计划2021年正式推出。据报道,Cloud PC是由Azure云服务支撑,基于虚拟桌面打造的&#…

无法检索传真服务器信息,帮助中心

1、交易协议未经您本人同意,我们不会向第三者透露您的任何个人信息和购买记录。您在使用信用卡、储蓄卡和其它支付方式的时候,有关个人资料在结算时将向有关的金融认证系统直接传送,包括我们在内的任何其它人无法得知。为了保护您的隐私和个人…

alpine linux图形界面_跟光磊学Linux运维-Linux入门与基本使用

认识Linux用户在安装CentOS8.2时,设置过root用户的密码,同时也创建了用户guanglei。其中root用户是系统自带的管理员账户,也被称为超级用户,root用户接近系统完整的控制能力,对系统损害几乎有无限的能力。运维人员在生…

休眠 嵌入式_内幕消息:嵌入式软件挤出最低功耗模式

低功耗运行仍然是各行业应用的关键驱动因素。随着睡眠模式的增加,电源管理突然从单纯的硬件问题转移到软件开发人员必须考虑的事情上。功耗模式的最简单应用是当系统空闲时,将其置于休眠状态。然而,今天的MCU提供多种低功耗模式,进…

cnn 验证集 参与训练吗_一个简单的零基础的机器学习教程之二,字母数字验证码识别...

一.前言基于前面我发的贴子 土味程序员:一个简单的零基础的机器学习教程,Pytorch搭建Faster R-CNN目标检测平台​zhuanlan.zhihu.com一个非常震撼的目标检测的例子。上个帖子从环境安装到调试代码再到图片检测视频检测一个详细的教程,今天我来…

activiti 文档_免费、开源、多平台的PDF文档处理软件——PDFsam Basic

今天给大家推荐的是一款免费、开源、多平台支持的PDF文档处理软件——PDFsam BasicPDFsam Basic是为普通用户提供的免费开源解决方案,提供了PDF文档拆分、合并、混合、提取页面和旋转等等功能。01. 文档分割PDFsam Basic可以通过给定页码、书签级别,把PD…

sq服务启动后又停止_SQL SERVER SQL Agent  服务启动后又停止的解决办法

查看事件查看器。应用程序日志。报错的显示。无法加载 DLL xplog70.dll 或它引用的一个 DLL。原因:126(找不到指定的模块。)。安全起见,我更名了sqlserver bin下的xplog70.dll,还原回来即可。以下是搜索到的其它人的错误及解决办法。算是个整理吧。本地计算机上的MS…

@data注解不生效_你说啥什么?注解你还不会?

点击蓝色字免费订阅,每天收到这样的好信息前言:最近有不少粉丝关注本公众号。并且我已经成功开通了流量主同时会赚一点点广告费,我打算每个月把这部分钱拿出来给大家买点书刊,算是给大家一点福利吧。大家想买什么书扫描下方的加他拉你加群。最后,非常感谢大家的关注…

忘记mysql数据库名称_忘记MySQL数据库密码的解决办法

在windows下:打开命令行窗口,停止MySQL服务:Net stop MySQL启动mysql,一般到mysql的安装路径,找到 mysqld-nt.exe (或mysqld.exe)执行:mysqld-nt (或mysqld.exe) –skip-grant-tables 当前窗口将会停止。另…

yearning 2. 部署_对于企业来说,在选择协同办公系统的时候,选择私有化部署的数据安全一些,还是使用云服务器比较安全?...

当然是私有化部署!因为它除了安全,还有个性化~私有化部署,简单理解就是企业自己购买或租赁服务器,或者由服务商提供免费的云资源,然后将整个系统部署在企业自有的服务器上。采用这种方式,企业就不用担心自家…

numpy 平方_Numpy的终极备忘录

作者|Rashida Nasrin Sucky 编译|VK 来源|Towards Data Science Python是开源的。对于使用python的数据科学家来说,Numpy这个库是必不可少的。其他一些基本的库,如Pandas,Scipy是建立在Numpy的基础上。所以我决定做一份备忘录。这里我包括了到…

mysql 字符集 校验规则_MySQL字符集及校验规则

1.字符集# Mysql 的字符集有4个级别的默认设置:服务器级,数据库级,表级和字段级,客户端交互时,也可以指定字符集# 字符集:是一个系统支持的所有抽象字符的集合。字符是各种文字和符号的总称,包括…

linux HZ 值_Linux的serial串口控制台

本人大多数情况都是在调试服务器大量的linux服务器,很多情况下也不没有必要专门准备KVM(keyboard, video, mouse),甚至有些机器根本就没有显示器接口。如何调试的?闲来无事,分享一下。有些人说“ 给我个Lin…

nginx文件系统大小_详解Nginx系列

1.Nginx特点Nginx是一个事件驱动架构,而非传统过程驱动架构。具有内存占用低,当并发连接大时,能够预测内存使用率。Nginx改变了传统的web服务器体系架构,提高了响应速度,起初Nginx开发的目标是实现10倍以上的性能&…

mysql总结 博客园_mysql 总结

mysqlzong操作mysql 连接 mysql -uroot -proot查看所有数据库: show databases;创建数据库:create database 数据库名;使用(调用数据库): use 数据库名;查看数据库:show create datebase 数据库名&#xff…

不可用于python编程开发的是_Python编程语言可做而不应做的一些事是什么_Python视频_Python视频教程_编程语言_课课家...

在 -5 ~ 256 之间的整型数值可以进行互换 当我在考虑这个能用在什么地方的时候,我有点迷茫了。撇开这点,你在此之前知道 Python 中的数字是可以改变其实际含义的吗?之所有会有这种情况,是因为 Python 解释器为 -5 ~ 256 之间的每一…

iphone7尺寸_iPhone 12 mini、12 Pro Max真机对比图赏:尺寸直观感受下

11月6日消息,等待多时,苹果iPhone 12 mini、iPhone 12 Pro Max将于今晚21点正式开启预定,11月13日发售。iPhone 12 mini是苹果尺寸最小、最轻薄的5G手机,而iPhone 12 Pro Max则是综合实力最强大,拍照最好的iPhone。赶在…

mysql导入数据提前修改字段_复习MySQL③导入数据、检查及修改

导入数据:用insert into语句为表插入数据:- insert into 表名(字段1,字段2,…) values ……导入外部文本文件:- 导入外部txt文件(导入CSV文件分隔符为,)load data local infile 文件路径.txt’into table 表名fields terminated by \tignore …

人脸识别错误代码437是什么意思_lol手游repeat ready check fails什么意思 解决攻略大全...

导读 lol手游repeat ready check fails什么意思?在日服内出现英文的错误代码,这两种语言的差异,会让国服玩家变得越来越混乱,想要解决问题,还是一如既往的得弄清楚代码内提示的内容是什么... lol手游repeat ready chec…