Sumar días hábiles a una fecha

Código PHP

PHP – Date – Sumar días hábiles

Función que suma un numero determinado de días hábiles a una fecha en formato yyyy-mm-dd.

No tiene en cuenta los sábados y domingos y se utiliza la función getDiasFetivos donde se han de indicar los dias festivos del año.

La fecha original no se modifica y devuelve la nueva fecha con los días sumados.

/**
 * Class HelperDate
 */
abstract class HelperDate
{
    /**
     * Suma un número de dias habiles (positivo) a una fecha
     * Se salta los dias festivos del mismo año 
     * (cuidado con el cambio de año)
     * Formato de fecha: yyyy-mm-dd
     *
     * @param string $fecha
     * @param int    $dias
     *
     * @return string
     */
    public static function sumarDiasHabiles($fecha, $dias)
    {
        if ($dias < 0) {
            return null;
        }

        $reales = 0;

        for ($n = 1; $n <= $dias; $n++) {

            do {

                $reales++;

                $fecha = HelperDate::sumarDiasNaturales($fecha, 1);
                $wd    = HelperDate::getDayOfWeek($fecha);

                /* Es mayor que el viernes o es festivo */
            } while ($wd > 5 || 
                     in_array($fecha, self::getDiasFetivos()));
        }

        return ($fecha);
    }


    /**
     * Devuelve los días festivos
     * @return array
     */
    public static function getDiasFetivos()
    {
        return [];
    }
}

Funciones relacionadas