在给定工作计划下,需要确认每个工序的起始日期,这时候就要只计算工作日,对于只考虑周六周日排除在工作日以外的情况下,有一个非常简便的算法如下:
addWorkingDay (duration) {
let currentDate = new Date()
let offset = parseInt((currentDate.getDay() + duration - 1) / 5) * 2 + duration
let startTimeStamp = currentDate.setDate(currentDate.getDate() + offset)
return new Date(startTimeStamp).toJSON()
}
这个算法可以很大程度上降低用户手工计算,尤其是在跨周的长时间情况下。比如:100个工作日以后是几号。