Ver Mensaje Individual
  #8 (permalink)  
Antiguo 14/11/2018, 12:11
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 6 meses
Puntos: 379
Respuesta: sumar dias habiles en cha mas no dias fines de semana

Esto se a tratado en otras ocasiones,
Código PHP:
Ver original
  1. $holiday = array(
  2.     '01-01',  //  Año Nuevo (irrenunciable)
  3.     '10-04',  //  Viernes Santo (feriado religioso)
  4.     '11-04',  //  Sábado Santo (feriado religioso)
  5.     '01-05',  //  Día Nacional del Trabajo (irrenunciable)
  6.     '21-05',  //  Día de las Glorias Navales
  7.     '29-06',  //  San Pedro y San Pablo (feriado religioso)
  8.     '16-07',  //  Virgen del Carmen (feriado religioso)
  9.     '15-08',  //  Asunción de la Virgen (feriado religioso)
  10.     '18-09',  //  Día de la Independencia (irrenunciable)
  11.     '19-09',  //  Día de las Glorias del Ejército
  12.     '12-10',  //  Aniversario del Descubrimiento de América
  13.     '31-10',  //  Día Nacional de las Iglesias Evangélicas y Protestantes (feriado religioso)
  14.     '01-11',  //  Día de Todos los Santos (feriado religioso)
  15.     '08-12',  //  Inmaculada Concepción de la Virgen (feriado religioso)
  16.     '13-12',  //  elecciones presidencial y parlamentarias (puede que se traslade al domingo 13)
  17.     '25-12',  //  Natividad del Señor (feriado religioso) (irrenunciable)
  18. );
  19.  
  20. $startDate = (new DateTime( '2018-11-01' ));    //inicia
  21. $endDate = (new DateTime( '2018-11-15' ))->modify('+1 day');    //termina
  22.  
  23. $interval = new DateInterval('P1D');    // intervalo de un día
  24. /** @var \DateTime[] $date_range */
  25. $date_range = new DatePeriod($startDate, $interval ,$endDate); //creamos rango de fechas
  26.  
  27. $workdays = 0;
  28. foreach($date_range as $date){
  29.     //Se considera el fin de semana y los feriados como no hábiles
  30.     if($date->format("N") <6 AND !in_array($date->format("d-m"),$holiday))
  31.         ++$workdays; // se cuentan los días habiles
  32. }
  33.  
  34. var_dump($workdays);
Ahí tienes un ejemplo, que publique por ahí del 2015 si no mal recuerdo aquí en el foro.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.