这里主要是通过java util包中的Calendar,来判断是否是工作日、计算工期(去除周末)
/**
* @ Author:yl1794
* @ Date:2019/10/14 16:03
* @ Description:
*/
public class DateCountUtil {
public static final long milliOfDay = 86400 * 1000;
/**
* 递归:计算开始时间
* 防止因期望开始时间在非工作日,而经过逆推导致最终开始时间在参考时间之前的问题
*
* 该场景主要是用于有任务与前置任务的关系。假设A是B的前置任务,则B的开始时间必须在A的截止时间之后。
* 若A的截止时间为星期六(referenceTime),那么B的期望开始时间为星期日,由于不是工作日则会往前推,一直推到星期五。
* 该时间不满足前提,B的正确开始时间应该是下周一。
*
* @param startTime 期望开始时间
* @param referenceTime 参考时间
* @return 正确开始时间
*/
public static long calculationStartTime(long startTime, long referenceTime){
long startTimeNew = DateCountUtil.countTime(startTime, true);
// 期望开始时间必须在参考时间之后
if(startTimeNew > referenceTime){
return startTimeNew;