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)
下次,再算版本時間的時候,希望小伙伴們能用的上啦~~~
總結
以上是生活随笔為你收集整理的python日期迭代_计算敏捷项目中迭代时间安排(Python3版)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qc成果报告范例_QC推进这样做才是货真
- 下一篇: 绳索受力分析的软件_【硕士论文】供热管网