例如:今天是2017-1-24 计算20个工作日后的时间
工作日就是周一到周五、法定假期前后调休需上班的都算作工作日,周六、周日和法定假日则不算工作日。
有什么好的办法吗
提供个思路。
1、从聚合数据上“获取当前假期列表API”抓取出当年的假期并存储到表里;
2、从stackexchange.com借鉴了一个“计算指定工作日后的日期”的类库,参考修改如下(1步骤获取的假期列表为此类库的一个参数$holidays):
<?php
class BusinessDaysCalculator {
const MONDAY = 1;
const TUESDAY = 2;
const WEDNESDAY = 3;
const THURSDAY = 4;
const FRIDAY = 5;
const SATURDAY = 6;
const SUNDAY = 7;
/**
* @param DateTime $startDate Date to start calculations from
* @param DateTime[] $holidays Array of holidays, holidays are no conisdered business days.
* @param DateTime[] $nonBusinessDays Array of days of the week which are not business days.
* @param DateTime[] $specialBusiness