Foros del Web » Programando para Internet » PHP »

Tengo problemas para calcular la catidad de dias

Estas en el tema de Tengo problemas para calcular la catidad de dias en el foro de PHP en Foros del Web. Buen Dia a todos tengo que calcular intereses y el problema se me presenta como calcular la cantidad de dias teniendo en cuenta que como ...
  #1 (permalink)  
Antiguo 24/03/2010, 07:09
 
Fecha de Ingreso: marzo-2010
Mensajes: 4
Antigüedad: 14 años, 1 mes
Puntos: 0
Tengo problemas para calcular la catidad de dias

Buen Dia a todos tengo que calcular intereses y el problema se me presenta como calcular la cantidad de dias teniendo en cuenta que como premisa el año tiene 360 dias es decir todos los meses son de 30 dias.
Pude sacar el calculo con php fecha contra fecha

Aca les pongo un ejemplo de lo que me pasa y no se como hacerlo
tengo una tabla con intereses
fecha desde fecha hasta
01/02/04 31/05/04 0,1
01/06/04 31/08/04 0,07
01/09/04 30/06/06 0,05
01/07/06 16/03/10 0,07

tenemos
fecha de vto:16/02/04
fecha de pago: 16/03/10
importe: 1000

mi problema que si calculo haciendo la diferencia entre fechas me da lo siguiente
y esto es lo que pude hacer
16/02/04 31/05/04 105 dias
01/06/04 31/08/04 91 dias
01/09/04 30/06/06 667 dias
01/07/06 16/03/10 1354 dias

pero necesito que el resultado me de esto
16/02/04 31/05/04 106 dias
01/06/04 31/08/04 90 dias
01/09/04 30/06/06 660 dias
01/07/06 16/03/10 1336 dias

No se como armar alguna funcion que tenga en cuenta la premisa y pueda resolver este problema les agradeceria mucho alguna pista
  #2 (permalink)  
Antiguo 24/03/2010, 08:41
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Tengo problemas para calcular la catidad de dias

Si vas a tomar todos los meses de 30 dias ya tienes que pensar en definir algo por ti mismo, dado esto, seria util saber... si una fecha es 31 de cualquier mes ese "dia extra" lo agregas al resultado final?... puedes mostrarnos que formula utilizas para generar los valores que debes tener ?...

Saludos,
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 24/03/2010, 08:53
 
Fecha de Ingreso: marzo-2010
Mensajes: 4
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Tengo problemas para calcular la catidad de dias

Hola Marvin yo lo que estoy aciendo hasta ahora es un calculo de diferencias de fecha utilizando mktime aplicado a las fechas y hacer la diferencia entre las misma, y hasta y todo bien pero ahora me han puesto esta condicion y no se como hacer para contar cuantos meses completos tengo dentro del rango de fecha a esos meses si son mayores restarle 1 dia a los de 30 dejarlos como estan y a los de 28 o 29 agregarles 2 o 1 y por otro lado en los meses incompletos supongamos que empiece el 15/02/2004 como calcular la cantidad de dias hasta el supuesto 30/02.

Muchisimas Gracias

Última edición por gus_zop; 24/03/2010 a las 08:54 Razón: me falto agradecer
  #4 (permalink)  
Antiguo 24/03/2010, 09:06
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Tengo problemas para calcular la catidad de dias

Si ya estas calculando la cantidad de dias desde la diferencia normal de mktime y solo te han pedido rellenar o eliminar dias en caso de ser menor o mayor respectivamente, lo que puedes hacer es exactamente eso.

Por ejemplo la funcion date() con el parametro t te da la cantidad de dias de un mes.

Si por ejemplo:
16/02/04 31/05/04 = 105 dias

02 = 29 = +1 //le sumamos uno para completar 30
03 = 31 = -1 //le restamos uno y quedamos con 0
04 = 30 = 0 //sigue con 0
05 = 31 = +1 //le sumamos uno
total = 1
105+1 = 106 (que es el resultado que necesitas)

No se si lo ves como yo, pero me parece una buena solucion.

Saludos!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #5 (permalink)  
Antiguo 24/03/2010, 09:21
 
Fecha de Ingreso: marzo-2010
Mensajes: 4
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Tengo problemas para calcular la catidad de dias

Marvin el tema que no se como hacerlo te paso script con el que trabajo
$s=(mysql_query('select * from intereses order by id´);
while($res=mysql_fetch_array($s)){
if((fechavto>fecha_desde)&&(fechapgo>fecha_hasta)& &(fechavto<=fecha_hasta))´{
mi problema aca es como hago para que me recorra los meses entre este lapso de fechas y como hacer para insertar tu idea que es muy buena.


} elseif ..........

Muchisimas Gracias
  #6 (permalink)  
Antiguo 24/03/2010, 10:49
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Tengo problemas para calcular la catidad de dias

Prueba haciendo esto primero:
Código PHP:
//en mes, dia, ano saca los datos que tienes en tu fecha desde
//mesFin es el mes que viene en fecha hasta
for($r=$mes;$r<=$mesFin;$r++){
    
$dias date('t',mktime(12,0,0,$r,$dia,$ano));
    if (
$dias 30){
        
//aca estamos en los meses que son menores a 30 dias
        
$temp $temp + (30-$dias);
    }elseif(
$dias 30){
        
//aca estamos en los meses que son mayores a 30 dias
        
$temp $temp - ($dias-30);
    }
}
//aca tomas tu total y luego lo sumas a $temp
//en caso que $temp sea negativo se restara
$totalDias $tuTotal+$temp;
echo 
$totalDias
Algo asi podria ser... pero no he probado nada.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!

Última edición por Marvin; 24/03/2010 a las 10:50 Razón: Falto un dato
  #7 (permalink)  
Antiguo 24/03/2010, 13:05
 
Fecha de Ingreso: marzo-2010
Mensajes: 4
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Tengo problemas para calcular la catidad de dias

muchisimas gracias cuando lo termine lo subo para que pueda usarlo otro que lo necesite

Etiquetas: calculo, fechas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 17:16.