大连平台网站建设,黑色个人网站欣赏,宣城做w网站的公司,青岛政务网官网首页节奏是敏捷开发的核心#xff0c;保持合理固定的节奏#xff0c;能有效的促使各个环节协调统一#xff0c;高效运行。针对产品的不同周期#xff0c;方案有所不同。迭代开发.jpg通常#xff0c;我们需要在一个时间盒中去分配一个项目中不同阶段的时间#xff0c;在项目管…节奏是敏捷开发的核心保持合理固定的节奏能有效的促使各个环节协调统一高效运行。针对产品的不同周期方案有所不同。迭代开发.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, FRimport datetimedetester input(请输入上一个版本结束时间:\n)thisyear datetime.datetime.strptime(detester, %Y-%m-%d).yearthismonth datetime.datetime.strptime(detester, %Y-%m-%d).monththisday datetime.datetime.strptime(detester, %Y-%m-%d).daybegindatetime 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)下次再算版本时间的时候希望小伙伴们能用的上啦~~~