// ------------------------------------------------------------
// Funciones varias para Genesis UD 1.00
// Enero / 2005
// ------------------------------------------------------------
// generales.
function dateok($fecha)
{
$fecha = trim($fecha);
$dia = substr($fecha,6,2);
$mes = substr($fecha,4,2);
$ano = substr($fecha,0,4);
if (!(checkdate($mes,$dia,$ano) && $ano>1900 && $ano<2099))
{return false;}
else
{return true;}
}
function date_nac_ok($fecha)
{
$fecha = trim($fecha);
if (strlen($fecha)==6 or strlen($fecha)==8 or strlen($fecha)==10)
{
if (strlen($fecha)==6)
{
$dia = substr($fecha,0,2);
$mes = substr($fecha,4,2);
$ano = substr($fecha,6,2);
}
else
{
if (strlen($fecha)==8)
{
if (substr($fecha,2,1)=='/' or substr($fecha,2,1)=='-' or substr($fecha,2,1)=='.' )
{
list($dia,$mes,$ano) = preg_split('[/.-]', $fecha);
}
else
{
$dia = substr($fecha,0,2);
$mes = substr($fecha,2,2);
$ano = substr($fecha,4,4);
}
}
else
{
list($dia,$mes,$ano) = preg_split('[/.-]', $fecha);
}
}
}
$ano_actual = date("Y");
if (!checkdate($mes,$dia,$ano) or $ano<1900 or $ano>$ano_actual)
{return false;}
else
{return true;}
}
function date_nac_pami_ok($fecha)
{
$fecha = trim($fecha);
if (strlen($fecha)==6 or strlen($fecha)==8 or strlen($fecha)==10)
{
if (strlen($fecha)==6)
{
$dia = substr($fecha,0,2);
$mes = substr($fecha,2,2);
$ano = substr($fecha,4,2);
$ano = '19'.$ano;
}
else
{
if (strlen($fecha)==8)
{
if (substr($fecha,2,1)=='/' or substr($fecha,2,1)=='-' or substr($fecha,2,1)=='.' )
{
list($dia,$mes,$ano) = preg_split('[/.-]', $fecha);
$ano = '19'.$ano;
}
else
{
$dia = substr($fecha,0,2);
$mes = substr($fecha,2,2);
$ano = substr($fecha,4,4);
}
}
else
{
list($dia,$mes,$ano) = preg_split('[/.-]', $fecha);
}
}
}
$ano_actual = date("Y");
/*
echo 'FECdia :'.$dia;
echo 'FECmes :'.$mes;
echo 'FECano :'.$ano;
echo 'ANO:'.$ano.'
';
echo 'ANOACT:'.$ano_actual.'
';
*/
if (!(checkdate($mes,$dia,$ano) && $ano>1900 && $ano<2000))
{return false;}
else
{return true;}
}
function date_movi_ok($fecha)
{
$fecha = trim($fecha);
if (strlen($fecha)==6 or strlen($fecha)==8 or strlen($fecha)==10)
{
if (strlen($fecha)==6)
{
$dia = substr($fecha,0,2);
$mes = substr($fecha,2,2);
$ano = substr($fecha,4,2);
$ano = '20'.$ano;
}
else
{
if (strlen($fecha)==8)
{
if (substr($fecha,2,1)=='/' or substr($fecha,2,1)=='-' or substr($fecha,2,1)=='.' )
{
list($dia,$mes,$ano) = preg_split('[/.-]', $fecha);
$ano = '20'.$ano;
}
else
{
$dia = substr($fecha,0,2);
$mes = substr($fecha,2,2);
$ano = substr($fecha,4,4);
}
}
else
{
list($dia,$mes,$ano) = preg_split('[/.-]', $fecha);
}
}
}
if (!(checkdate($mes,$dia,$ano) && $ano>2000 && $ano<2099))
{return false;}
else
{return true;}
}
function date2format($fecha)
{
$fecha = trim($fecha);
if (strlen($fecha)==6 or strlen($fecha)==8 or strlen($fecha)==10)
{
if (strlen($fecha)==6)
{
$dia = substr($fecha,0,2);
$mes = substr($fecha,2,2);
$ano = substr($fecha,4,2);
$ano = '19'.$ano;
}
else
{
if (strlen($fecha)==8)
{
if (substr($fecha,2,1)=='/' or substr($fecha,2,1)=='-' or substr($fecha,2,1)=='.' )
{
list($dia,$mes,$ano) = preg_split('[/.-]', $fecha);
$ano = '19'.$ano;
}
else
{
$dia = substr($fecha,0,2);
$mes = substr($fecha,2,2);
$ano = substr($fecha,4,4);
}
}
else
{
list($dia,$mes,$ano) = preg_split('[/.-]', $fecha);
}
}
}
$str=$dia."/".$mes."/".$ano;
return $str;
}
function date2format2($fecha)
{
$fecha = trim($fecha);
if (strlen($fecha)==6 or strlen($fecha)==8 or strlen($fecha)==10)
{
if (strlen($fecha)==6)
{
$dia = substr($fecha,0,2);
$mes = substr($fecha,2,2);
$ano = substr($fecha,4,2);
$ano = '20'.$ano;
}
else
{
if (strlen($fecha)==8)
{
if (substr($fecha,2,1)=='/' or substr($fecha,2,1)=='-' or substr($fecha,2,1)=='.' )
{
list($dia,$mes,$ano) = preg_split('[/.-]', $fecha);
$ano = '20'.$ano;
}
else
{
$dia = substr($fecha,0,2);
$mes = substr($fecha,2,2);
$ano = substr($fecha,4,4);
}
}
else
{
list($dia,$mes,$ano) = preg_split('[/.-]', $fecha);
}
}
}
$str=$dia."/".$mes."/".$ano;
return $str;
}
function date2str($fecha)
{
$fecha = trim($fecha);
if ( !empty($fecha) )
{
$dia = substr($fecha,6,2);
$mes = substr($fecha,4,2);
$ano = substr($fecha,0,4);
$str=$dia."/".$mes."/".$ano;
}
else
{
$str = "";
}
return $str;
}
function date2str_corto($fecha)
{
$fecha = trim($fecha);
if ( !empty($fecha) )
{
$dia = substr($fecha,6,2);
$mes = substr($fecha,4,2);
$ano = substr($fecha,2,2);
$str=$dia."/".$mes."/".$ano;
}
else
{
$str = "";
}
return $str;
}
function str2date($str)
{
list($dia,$mes,$ano) = preg_split('[/.-]', $str);
$ano_prox=date("y")+1;
$digito=strlen($ano);
if ($digito==2 && $ano<$ano_prox)
{$ano=$ano+2000;}
else if ($digito==2)
{$ano=$ano+1900;}
if (strlen($dia)==1)
$dia='0'.$dia;
if (strlen($mes)==1)
$mes='0'.$mes;
$fecha=$ano.$mes.$dia;
return $fecha;
}
function timeok($hora)
{
$b=strlen($hora);
if ($b < 4 || $b>5)
return false;
list( $h, $m ) = preg_split( '[:.-]', $hora );
if (empty($m))
{
$h=substr($hora,0,2);
$m=substr($hora,2,2);
}
if (strlen($h)==1)
{
$h="0".$h;
}
else if ((strlen($h)==2 && !is_numeric($h)) || strlen($h)>2)
return false;
if (strlen($m)==1)
{
$m="0".$m;
}
else if ((strlen($m)==2 && !is_numeric($m)) || strlen($m)>2)
return false;
if (($h < 0) || ($h > 23))
return false;
if (($m < 0) || ($m > 59))
return false;
$_SESSION[horaok]=$h.$m;
return true;
}
function get_dia_nombre ($fecha)
{
// formato entrada AAAAMMDD
$month=substr($fecha,4,2);
$year=substr($fecha,0,4);
$day=substr($fecha,-2);
$dia = date ("w", mktime (0, 0, 0, $month, $day, $year));
switch ($dia)
{
case 1:
$nombre='Lunes';
break;
case 2:
$nombre='Martes';
break;
case 3:
$nombre='Miércoles';
break;
case 4:
$nombre='Jueves';
break;
case 5:
$nombre='Viernes';
break;
case 6:
$nombre='Sábado';
break;
case 0:
$nombre='Domingo';
break;
}
return $nombre;
}
function get_dia_nombre2 ($dia)
{
switch ($dia)
{
case 1:
$nombre='Lunes';
break;
case 2:
$nombre='Martes';
break;
case 3:
$nombre='Miércoles';
break;
case 4:
$nombre='Jueves';
break;
case 5:
$nombre='Viernes';
break;
case 6:
$nombre='Sábado';
break;
case 0:
$nombre='Domingo';
break;
}
return $nombre;
}
function getlunes ($hoy)
{
$dia = substr($hoy,6,2);
$mes = substr($hoy,4,2);
$ano = substr($hoy,0,4);
$dia_nro=date("w", mktime(0,0,0,$mes,$dia,$ano));
if ($dia_nro==1)
{
$lunes[dia]=$dia;
$lunes[mes]=$mes;
$lunes[ano]=$ano;
}
else
{
if ($dia_nro==0)
{
$lunes[dia]=date("d", mktime(0,0,0,$mes,$dia-6,$ano));
$lunes[mes]=date("m", mktime(0,0,0,$mes,$dia-6,$ano));
$lunes[ano]=date("Y", mktime(0,0,0,$mes,$dia-6,$ano));
}
else if ($dia_nro>1)
{
$lunes[dia]=date("d", mktime(0,0,0,$mes,$dia+1-$dia_nro,$ano));
$lunes[mes]=date("m", mktime(0,0,0,$mes,$dia+1-$dia_nro,$ano));
$lunes[ano]=date("Y", mktime(0,0,0,$mes,$dia+1-$dia_nro,$ano));
}
}
$lunes=$lunes[ano].$lunes[mes].$lunes[dia];
return $lunes;
}
function get_mes_nombre ($fecha)
{
// formato entrada AAAAMMDD
$month=substr($fecha,4,2);
$year=substr($fecha,0,4);
$day=substr($fecha,-2);
$dia = date ("n", mktime (0, 0, 0, $month, $day, $year));
switch ($dia)
{
case 1:
$nombre='Enero';
break;
case 2:
$nombre='Febrero';
break;
case 3:
$nombre='Marzo';
break;
case 4:
$nombre='Abril';
break;
case 5:
$nombre='Mayo';
break;
case 6:
$nombre='Junio';
break;
case 7:
$nombre='Julio';
break;
case 8:
$nombre='Agosto';
break;
case 9:
$nombre='Septiembre';
break;
case 10:
$nombre='Octubre';
break;
case 11:
$nombre='Noviembre';
break;
case 12:
$nombre='Diciembre';
break;
}
return $nombre;
}
function time2str($hora)
{
$m = substr($hora,2,2);
$h = substr($hora,0,2);
$str=$h.":".$m;
if (strlen($str)<>5)
$str="";
return $str;
}
function str2time($str)
{
list($h,$m) = preg_split('[:.-]', $str);
if (strlen($m)==1)
$m='0'.$m;
if (strlen($h)==1)
$h='0'.$h;
$hora=$h.$m;
return $hora;
}
function suma_fechas($fecha,$ndias)
{
if (preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha))
list($dia,$mes,$ao)=preg_split("/", $fecha);
if (preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha))
list($dia,$mes,$ao)=preg_split("-",$fecha);
$nueva = mktime(0,0,0, $mes,$dia,$ao) + $ndias * 24 * 60 * 60;
$nuevafecha=date("Ymd",$nueva);
return ($nuevafecha);
}
function suma_fechas_habiles($fecha,$ndias)
{
$nuevafecha = $fecha;
while ($i < $ndias)
{
$nuevafecha = date2str(suma_fechas($nuevafecha, 1));
list($dia, $mes, $año) = preg_split("/", $nuevafecha);
$sabado = date("N", mktime(0, 0, 0, $mes, $dia, $año));
if (date("w", mktime(0, 0, 0, $mes, $dia, $año)) != 6 && date("w", mktime(0, 0, 0, $mes, $dia, $año)) != 0)
$i += 1;
}
return ($nuevafecha);
}
function resta_fechas($fecha,$ndias)
{
if (preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha))
list($dia,$mes,$ao)=preg_split("/", $fecha);
if (preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha))
list($dia,$mes,$ao)=preg_split("-",$fecha);
$nueva = mktime(0,0,0, $mes,$dia,$ao) - $ndias * 24 * 60 * 60;
$nuevafecha=date("Ymd",$nueva);
return ($nuevafecha);
}
function dif_fechahora($fecha_ini,$hora_ini,$fecha_fin,$hora_fin)
{
// El formato fecha debe ser YYYYMMDD y hora HHMM
$suma_dia = 0;
$quitar_minutos = 0;
//echo 'FECHA INI 1 : '.$fecha_ini.'
';
$fecha_ini = trim($fecha_ini);
$dia_ini = substr($fecha_ini,6,2);
$mes_ini = substr($fecha_ini,4,2);
$ano_ini = substr($fecha_ini,0,4);
$hora_ini = trim($hora_ini);
$ho_ini = substr($hora_ini,0,2);
$minu_ini = substr($hora_ini,2,2);
$fecha_fin = trim($fecha_fin);
$dia_fin = substr($fecha_fin,6,2);
$mes_fin = substr($fecha_fin,4,2);
$ano_fin = substr($fecha_fin,0,4);
$hora_fin = trim($hora_fin);
$ho_fin = substr($hora_fin,0,2);
$minu_fin = substr($hora_fin,2,2);
if ($hora_fin<'0900')
{
$hora_fin = '0900';
$ho_fin = substr($hora_fin,0,2);
$minu_fin = substr($hora_fin,2,2);
}
// SI PASO LAS 18hs
if ($hora_ini>='1800' and $fecha_ini< $fecha_fin )
{
$hora_ini ='0900';
$ho_ini = substr($hora_ini,0,2);
$minu_ini = substr($hora_ini,2,2);
$viejafecha = $mes_ini.'/'.$dia_ini.'/'.$ano_ini; // TIENE QUE IR CON / PARA TOMAR FORMATO AMERICANO
// SUMA UN DIA A LA FECHA
//echo 'VIEJA FECHA : '.$viejafecha.'
';
$fecha_ini = date('Ymd', strtotime("$viejafecha +1 day"));
$dia_ini = substr($fecha_ini,6,2);
$mes_ini = substr($fecha_ini,4,2);
$ano_ini = substr($fecha_ini,0,4);
}
//echo 'FECHA INI 2 : '.$fecha_ini.'
';
// CHEQUEAR QUE DIA ES
$dia_ini_nro=date("w", mktime(0,0,0,$mes_ini,$dia_ini,$ano_ini));
$dia_fin_nro=date("w", mktime(0,0,0,$mes_fin,$dia_fin,$ano_fin));
// 0; Domingo ; 1: Lunes ; 2: Martes ......6: Sabado
if ($dia_ini_nro<>$dia_fin_nro and $fecha_ini< $fecha_fin)
{
if ($dia_ini_nro <> 6 and $dia_ini_nro <> 0) // Si es viernes
{
//echo 'NO ES SAB/DOM : '.'
';
$diferencia_dias = $dia_fin_nro - $dia_ini_nro;
//echo 'DIF DIAS : '.$diferencia_dias.'
';
if ($diferencia_dias<7 and $diferencia_dias>0)
{
//echo 'DIF DIAS < 7 : '.'
';
$quitar_minutos = 900*$diferencia_dias;
}
if ($dia_ini_nro > $dia_fin_nro)
{
//echo 'DIF DIAS NEGAT : '.'
';
$resta_noche = 5 + $diferencia_dias;
//echo 'RESTA NOCHES : '.$resta_noche.'
';
// RESTA FIN DE
$quitar_minutos = $quitar_minutos + 900*$resta_noche;
//echo 'QUITAR : '.$quitar_minutos.'
';
// RESTA FIN DE
$quitar_minutos = $quitar_minutos + 2880;
//echo 'QUITAR : '.$quitar_minutos.'
';
}
}
if ($dia_ini_nro == 6 and $fecha_ini< $fecha_fin) // Si es sábado
{
$suma_dia = $suma_dia + 2;
$hora_ini ='0900';
$ho_ini = substr($hora_ini,0,2);
$minu_ini = substr($hora_ini,2,2);
}
if ($dia_ini_nro == 0 and $fecha_ini< $fecha_fin) // Si es Domingo
{
$suma_dia = $suma_dia + 1;
$hora_ini ='0900';
$ho_ini = substr($hora_ini,0,2);
$minu_ini = substr($hora_ini,2,2);
}
}
$_final = mktime($ho_fin,$minu_fin,0,$mes_fin,$dia_fin,$ano_fin);
$_inicio = mktime($ho_ini,$minu_ini,0,$mes_ini,$dia_ini+$suma_dia,$ano_ini);
$timestamp_dif= $_final - $_inicio ;
$minutos_dif = $timestamp_dif/60;
// QUITA LOS MINUTOS DE LA NOCHE
if ($quitar_minutos>0)
$minutos_dif = $minutos_dif - $quitar_minutos;
if ($minutos_dif<0)
$minutos_dif = 0;
return ($minutos_dif);
}
function primer_dia_mes($fecha)
{
if (preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha))
list($dia,$mes,$ao)=preg_split("/", $fecha);
if (preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha))
list($dia,$mes,$ao)=preg_split("-",$fecha);
$nueva = mktime(0,0,0, $mes-1,1,$ao);
$nuevafecha=date("d/m/Y",$nueva);
return ($nuevafecha);
}
function ultimo_dia_mes($fecha)
{
if (preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha))
list($dia,$mes,$ao)=preg_split("/", $fecha);
if (preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha))
list($dia,$mes,$ao)=preg_split("-",$fecha);
$nueva = mktime(0,0,0, $mes-1,31,$ao);
$nuevafecha=date("d/m/Y",$nueva);
return ($nuevafecha);
}
function primer_dia_mes2($fecha)
{
if (preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha))
list($dia,$mes,$ao)=preg_split("/", $fecha);
if (preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha))
list($dia,$mes,$ao)=preg_split("-",$fecha);
$nueva = mktime(0,0,0, $mes,1,$ao);
$nuevafecha=date("d/m/Y",$nueva);
return ($nuevafecha);
}
function ultimo_dia_mes2($fecha)
{
if (preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha))
list($dia,$mes,$ao)=preg_split("/", $fecha);
if (preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha))
list($dia,$mes,$ao)=preg_split("-",$fecha);
$nueva = mktime(0,0,0, $mes,1,$ao);
$dias_new = date('t', $nueva);
$nueva = mktime(0,0,0, $mes,$dias_new,$ao);
$nuevafecha=date("d/m/Y",$nueva);
return ($nuevafecha);
}
function primer_dia_mes3($fecha)
{
if (preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha))
list($dia,$mes,$ao)=preg_split("/", $fecha);
if (preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha))
list($dia,$mes,$ao)=preg_split("-",$fecha);
$nueva = mktime(0,0,0, $mes,1,$ao);
$nuevafecha=date("Ymd",$nueva);
return ($nuevafecha);
}
function ultimo_dia_mes3($fecha)
{
if (preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha))
list($dia,$mes,$ao)=preg_split("/", $fecha);
if (preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha))
list($dia,$mes,$ao)=preg_split("-",$fecha);
$nueva = mktime(0,0,0, $mes,1,$ao);
$dias_new = date('t', $nueva);
$nueva = mktime(0,0,0, $mes,$dias_new,$ao);
$nuevafecha=date("Ymd",$nueva);
return ($nuevafecha);
}
function sumahora($hora, $minutos_a_sumar)
{
$horad=substr($hora,0,2);
$minud=substr($hora,-2);
$minud=$minud+$minutos_a_sumar;
if ($minud>59)
{
$minud=$minud-60;
$horad=$horad+1;
}
$digito=strlen($minud);
if ($digito==1)
$minud='0'.$minud;
$digito=strlen($horad);
if ($digito==1)
$horad='0'.$horad;
$nuevahora=$horad.$minud;
return ($nuevahora);
}
function restahora($hora, $minutos_a_restar)
{
$horad=substr($hora,0,2);
$minud=substr($hora,-2);
$minud=$minud-$minutos_a_restar;
if ($minud<0)
{
$minud=$minud+60;
$horad=$horad-1;
}
$digito=strlen($minud);
if ($digito==1)
$minud='0'.$minud;
$digito=strlen($horad);
if ($digito==1)
$horad='0'.$horad;
$nuevahora=$horad.$minud;
return ($nuevahora);
}
function dif_horas($horaIni, $horaFin)
{
return (date("H:i", strtotime("00:00") + strtotime($horaFin) - strtotime($horaIni) ));
}
// Calcula edad en año.mes dia
class edadAMD
{
private $fActual;
private $fNacimiento;
function __construct($fActual, $fNacimiento){
$this->fActual = $fActual;
$this->fNacimiento = $fNacimiento;
}
private function bisiesto($anio){
return checkdate(2,29,$anio) ? true : false;
}
private function validar(){
//validar el formato y que la fecha de nacimiento sea menor que la actual
if(!isset($this->fActual)||!isset($this->fNacimiento)){
echo 'No se definieron las fechas';
return false;
}
return true;
}
function calcularEdad(){
if(!$this->validar()){
return false;
}
$anacimiento = explode ( "/", $this->fNacimiento);
$aactual = explode ( "/", $this->fActual);
$anios = $aactual[2] - $anacimiento[2];
$meses = $aactual[1] - $anacimiento[1];
$dias = $aactual[0] - $anacimiento[0];
if ($meses < 0){
--$anios;
$meses = ($aactual[1] + 12) - $anacimiento[1];
}
if ($dias < 0){
--$meses;
//array con la cantidad de dias por mes
$ameses = array(1=>31, 2=>28, 3=>31, 4=>30, 5=>31, 6=>30, 7=>31, 8=>31, 9=>30, 10=>31, 11=>30, 12=>31);
$mAnterior = $aactual[1] - 1;
if($mAnterior>0 && $mAnterior<>2){
$dmAnterior = $ameses[$mAnterior];
}
elseif($mAnterior == 2){
//si el mes es febrero controlar si el año es bisiesto
($this->bisiesto($aactual[2])) ? $dmAnterior = 29 : $dmAnterior = $ameses['2'];
}
else{
//para el caso de que 01 (enero)-1 sea igual a 0 correspondería a diciembre del año anterior
$dmAnterior = $ameses['12'];
}
$dias = ($aactual[0] + $dmAnterior) - $anacimiento[0];
}
$edad[0] = $anios;
$edad[1] = $meses;
$edad[2] = $dias;
return $edad;
}
}
// ENTREGA DE RESULTADO
function get_dias_entrega($pgl_con, $fecha, $id_esin)
{
// FORMATO $fecha . DD/MM/AAAA
$sql = "SELECT dias
FROM gh0116
WHERE id_esin = $id_esin ";
//echo $sql.'
';
$res_ing = pg_query($pgl_con, $sql);
$reg = pg_fetch_array ($res_ing, 0, PGSQL_ASSOC);
$cant_dias = $reg["dias"];
if (empty($cant_dias))
{
$cant_dias = 3;
}
// SUMA DIAS HABILES
$nuevafecha = $fecha;
// Si el estudio se hace el domingo. Hay qua adicionar un dia mas
list($dia1, $mes1, $año1) = preg_split("/", $fecha);
if (date("w", mktime(0, 0, 0, $mes1, $dia1, $año1)) == 0)
{
$nuevafecha = date2str(suma_fechas($fecha, 1));
}
//echo 'NUEVA_FECHA: '.$nuevafecha.'
';
$i = 0;
while ($i < $cant_dias)
{
$nuevafecha = date2str(suma_fechas($nuevafecha, 1));
//echo 'NUEVA_FECHA WH: '.$nuevafecha.'
';
list($dia, $mes, $año) = preg_split("/", $nuevafecha);
$feriado = str2date($nuevafecha);
// Verifica si es feriado
$sql_fer = "SELECT dias
FROM gh0127
WHERE fecha = '$feriado' ";
//echo $sql;
$res_fer = pg_query($pgl_con, $sql_fer);
if (pg_num_rows($res_fer) ==0 and date("w", mktime(0, 0, 0, $mes, $dia, $año)) != 6 and date("w", mktime(0, 0, 0, $mes, $dia, $año)) != 0)
$i += 1;
}
return ($nuevafecha);
}
function dif_fechahora_t($fecha_ini,$hora_ini,$fecha_fin,$hora_fin)
{
// El formato fecha debe ser YYYYMMDD y hora HHMM
$suma_dia = 0;
$quitar_minutos = 0;
//echo 'FECHA INI 1 : '.$fecha_ini.'
';
$fecha_ini = trim($fecha_ini);
$dia_ini = substr($fecha_ini,6,2);
$mes_ini = substr($fecha_ini,4,2);
$ano_ini = substr($fecha_ini,0,4);
$hora_ini = trim($hora_ini);
$ho_ini = substr($hora_ini,0,2);
$minu_ini = substr($hora_ini,2,2);
$fecha_fin = trim($fecha_fin);
$dia_fin = substr($fecha_fin,6,2);
$mes_fin = substr($fecha_fin,4,2);
$ano_fin = substr($fecha_fin,0,4);
$hora_fin = trim($hora_fin);
$ho_fin = substr($hora_fin,0,2);
$minu_fin = substr($hora_fin,2,2);
$_final = mktime($ho_fin,$minu_fin,0,$mes_fin,$dia_fin,$ano_fin);
$_inicio = mktime($ho_ini,$minu_ini,0,$mes_ini,$dia_ini+$suma_dia,$ano_ini);
$timestamp_dif= $_final - $_inicio ;
$minutos_dif = $timestamp_dif/60;
return ($minutos_dif);
}
function seg_a_dias($seg)
{
$d = floor($seg / 86400);
$h = floor(($seg - ($d * 86400)) / 3600);
$m = floor(($seg - ($d * 86400) - ($h * 3600)) / 60);
$s = $seg % 60;
return "$d días, $h horas, $m minutos";
}
?>