🌹🏠🌹？》《》？《》？<?php
date_default_timezone_set("America/Argentina/Buenos_Aires");

function YMD_to_DMY($fecha)
{
   $array=explode("-",$fecha);
   $array=array_reverse($array);
   $fecha=implode("/",$array);
   
   return $fecha;
  
}

function r_fecha_habil_anterior($r_fecha_desde,$r_dias)
{
    global $Base;
   
    $p_fecha = $r_fecha_desde; // Y-m-d
    $p_sigo=true;
    $i = 1;

    $p_fecha = date('d-m-Y', strtotime($p_fecha . "-$r_dias days"));
   //echo "Dias $r_dias Desde $r_fecha_desde <br>";
    while ($p_sigo )
    {
       $p_fecha = date('d-m-Y', strtotime($p_fecha . "-1 days"));

       $sql="select * from feriados where fecha = '".$p_fecha."' ";
       $resultado=odbc_exec($Base->conexion, $sql);
       if ($resultado)
       {
        $row=odbc_fetch_array($resultado);
        if ($row)
        {
          $p_fecha = date('d-m-Y', strtotime($p_fecha . "-1 days"));
          $i++;
          continue;
        }
       }
       # Saca Sabados y Domingos.
       if ( date("w", strtotime($p_fecha)) == 0  ||  date("w", strtotime($p_fecha)) == 6 )
       {
        $p_fecha = date('d-m-Y', strtotime($p_fecha . "-1 days"));
        $i++;
        continue;
       }
       $i++;
       $p_sigo=false;
       //echo "I: $i Dias $r_dias Fecha Desde $r_fecha_desde Final $p_fecha <br>";
    }

    return $p_fecha;
}

function r_fecha_habil_siguiente($r_fecha)
{
  global $Base;

  $r_fecha_sig = $r_fecha;
  $p_sigo=true;
  while ($p_sigo)
   {
       $r_fecha_sig = strtotime ( '+1 day' , strtotime ( $r_fecha_sig ) ) ;
       $p_fecha_aux=date("d-m-Y",$r_fecha_sig);

       $r_fecha_sig=date("Y-m-d",$r_fecha_sig);
       $sql="select * from feriados
              where fecha = '$p_fecha_aux' ";
       $resultado=odbc_exec($Base->conexion, $sql);
       if ($resultado)
         {
          $row=odbc_fetch_array($resultado);
          if ($row)
          {
            $p_fec=$row['fecha'];
            if (!empty($p_fec))
                continue;
          }
         }
       if ( date("w", strtotime($r_fecha_sig)) == 0  ||  date("w", strtotime($r_fecha_sig)) == 6 )
         {
          continue;
         }
       $p_sigo=false;
       break;
   }

   return $r_fecha_sig;
}

function r_RestarHoras($r_horaini,$r_horafin)
{

  $horai=substr($r_horaini,0,2);
  $mini=substr($r_horaini,3,2);
  $segi=substr($r_horaini,6,2);

  $horaf=substr($r_horafin,0,2);
  $minf=substr($r_horafin,3,2);
  $segf=substr($r_horafin,6,2);

  $ini=((($horai*60)*60)+($mini*60)+$segi);
  $fin=((($horaf*60)*60)+($minf*60)+$segf);

  $dif=$fin-$ini;

  $difh=floor($dif/3600);
  $difm=floor(($dif-($difh*3600))/60);
  $difs=$dif-($difm*60)-($difh*3600);

  return date("H:i:s",mktime($difh,$difm,$difs));

}

// Sin probar
function r_cuantos_habiles($r_desde,$r_hasta)
{
  /*
  $p_desde=strtotime($r_desde);
  $p_hasta=strtotime($r_hasta);

  $p_diff=$p_hasta-$p_desde;
  $p_diff=round($diff/86400);

  $p_dias=0;
  $p_fecha=new DateTime($r_desde);
  for ($i=1;$i++;$i<=$p_diff){
    $p_feriado=false;
    $sql="select * from feriado where fecha = '$p_fecha'";
    $resultado=odbc_exec($Base->conexion, $sql);
    if ($resultado){
      $row=odbc_fetch_array($resultado);
      if ($row){
        $p_feriado=true;
      }
    } 
    odbc_free_result($resultado);
    $p_que_dia=date("w",strtotime($p_fecha));
    if ($p_que_dia == 6 || $p_que_dia == 7 || $p_feriado){
      //sumarle un dia a $p_fecha
      continue;
    }
   //sumarle un dia a $p_fecha
    $p_dias++;

  }
  return $p_dias;
  */
}

function r_manana( $dia )
{
   /***
    * dia es Y-M-D
   */  
   $ts = strtotime($dia);
   return date( "Y-m-d", mktime(0, 0, 0, date("m",$ts), date("d",$ts)+1, date("Y",$ts)));
} 

function r_mes_des($r_mes){
  $p_mes="";
  switch ($r_mes) {
    case '1':
      $p_mes = "Enero";
      break;
    case 2:
      $p_mes = "Febrero";
      break;
    case 3:
      $p_mes = "Marzo";
      break;
    case 4:
      $p_mes = "Abril";
      break;
    case 5:
      $p_mes = "Mayo";
      break;
    case 6:
      $p_mes = "Junio";
      break;
    case 7:
      $p_mes = "Julio";
      break;
    case 8:
      $p_mes = "Agosto";
      break;
    case 9:
      $p_mes = "Septiembre";
      break;
    case 10:
      $p_mes = "Octubre";
      break;
    case 11:
      $p_mes = "Noviembre";
      break;
    case 12:
      $p_mes = "Diciembre";
      break;
    
    default:
      break;
  }

  return $p_mes;
}
?>