elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Saber cuantos Domingos hay entre 2 fechas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Saber cuantos Domingos hay entre 2 fechas  (Leído 7,864 veces)
FeArX

Desconectado Desconectado

Mensajes: 45


Debemos combatir nuestro instinto basico el miedo


Ver Perfil
Saber cuantos Domingos hay entre 2 fechas
« en: 11 Junio 2008, 20:40 pm »

Hola, bueno, este es un pequeño aporte a la comunidad  ;D

Código:
function domingos($fechaInicio,$fechaFin)
{
$dias=array(); //creo un arreglo para devolver los domingos
$fecha1=date($fechaInicio);
$fecha2=date($fechaFin);
$fecha=date("Y-m-d",strtotime($fecha1)); //paso a date para darle formato
$fechaTime=strtotime($fecha1); //paso a hora unix fechaInicio

while($fecha <= $fecha2) //verifico que no me haya pasado de la fecha fin
{

//Ahora, el Unix timestamp para el primer lunes
//después de fecha 1:
$proximo_lunes=strtotime("next Monday",$fechaTime);
$proximo_domingo=strtotime("next Sunday",$fechaTime);

$fechaDomingo=date("Y-m-d",$proximo_domingo);

if($fechaDomingo <= $fechaFin)
{
$dias[$fechaDomingo]=$fechaDomingo;
}
else
{
break;
}
$fechaTime=$proximo_lunes;
$fecha=date("Y-m-d",$proximo_lunes);
}
return $dias;
}//fin de domingos

$datos=domingos("2008-01-01","2008-12-31"); //creo un array que tendra las fechas

foreach($datos as $nombre_campo => $valor){
    $asignacion = 'Domingo"' . $nombre_campo . ": " . $valor . "';<br>";
    echo $asignacion;
}//imprimo lo que esta en el array

Espero que les sirva... ya a mi me ha funcionado bien  :rolleyes: pero si ven algun problema avisen


En línea

Solo los mas debiles son los que no quieren ni estan dispuestos a dejar de depender de los demas
FeArX

Desconectado Desconectado

Mensajes: 45


Debemos combatir nuestro instinto basico el miedo


Ver Perfil
Re: Saber cuantos Domingos hay entre 2 fechas
« Respuesta #1 en: 11 Junio 2008, 23:11 pm »

Hola! bueno, después de hacer varias pruebas me di cuenta que si la fecha de inicio era un domingo ese domingo no lo contaba, asi que cambie el codigo:


El cambio básicamente fue: la fecha de inicio la puse a que iniciara el dia de ayer, para así al hacer la búsqueda, del "next monday" lo encontrara.

El otro cambio que le hice fue que ya busco es por domingo y no por lunes.

Exito a todos, espero que les sirva

Código:
/*Funcion que devuelve los dias domingo que caen entre 2 fechas*/
function contarDomingos($fechaInicio,$fechaFin)
{
$dias=array();
$fecha1=date($fechaInicio);
$fecha2=date($fechaFin);
$fechaTime=strtotime("-1 day",strtotime($fecha1));//Les resto un dia para que el next sunday pueda evaluarlo en caso de que sea un domingo
$fecha=date("Y-m-d",$fechaTime);
while($fecha <= $fecha2)
{
$proximo_domingo=strtotime("next Sunday",$fechaTime);
$fechaDomingo=date("Y-m-d",$proximo_domingo);
if($fechaDomingo <= $fechaFin)
{
$dias[$fechaDomingo]=$fechaDomingo;
}
else
{
break;
}
$fechaTime=$proximo_domingo;
$fecha=date("Y-m-d",$proximo_domingo);
}
return $dias;
}//fin de domingos


En línea

Solo los mas debiles son los que no quieren ni estan dispuestos a dejar de depender de los demas
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
intervalo entre fechas
Programación Visual Basic
z_ane_666 4 2,722 Último mensaje 8 Noviembre 2011, 13:34 pm
por 79137913
Consulta calculo de horas, entre dos fechas
Java
Ghalad 0 2,935 Último mensaje 26 Abril 2012, 15:57 pm
por Ghalad
Una aguja con hilo para saber cuantos hijos tendras xDD
Foro Libre
$Edu$ 8 18,108 Último mensaje 17 Mayo 2012, 20:31 pm
por tremolero
Fecha aleatoria entre dos fechas. delphi
Programación General
OssoH 1 2,540 Último mensaje 4 Junio 2014, 19:07 pm
por OssoH
Pasar string a time. Número de días entre dos fechas
Programación C/C++
capitandelpanel 5 4,163 Último mensaje 3 Junio 2015, 16:21 pm
por rir3760
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines