Foros del Web » Programación para mayores de 30 ;) » Programación General »

Diferencia de dias entre dos fechas por sumas y restas

Estas en el tema de Diferencia de dias entre dos fechas por sumas y restas en el foro de Programación General en Foros del Web. Hola como esta, El problema que tengo ahurita es que tengo que calcular la diferencia entre dos fechas diferentes, el problema que me encuentro es ...
  #1 (permalink)  
Antiguo 25/01/2013, 13:39
 
Fecha de Ingreso: enero-2013
Mensajes: 1
Antigüedad: 11 años, 2 meses
Puntos: 0
Diferencia de dias entre dos fechas por sumas y restas

Hola como esta, El problema que tengo ahurita es que tengo que calcular la diferencia entre dos fechas diferentes, el problema que me encuentro es que con lo0 qeu pense, me faltan algunas consideraciones.

lo que yo hago es lo siguiente,
Fecha 1=01-01-2013
fecha 2 = 10-10-2012

aqui lo qeu hago primero es sacar la diferencia de años, de ahi la diferencia (en este caso 1) lo multiplico por 365.

despues saco la diferencia de meses (para el ejemplo es 9) y lo multiplico por 30 (aqui es donde encuentro el problema ya uqe son solo 4 meses con 30 dias, 7 con 31 dias y 1 mes que cada 4 dias tiene 29 dias si no 28 dias)

el siguiente paso es restarle a 365 dias la cantidad de los meses( en este caso 270 dias) y me sale 95.

de ahi saco la diferencia de de dias y se las resto a los dias que me salieron en el paso anterior.

al final del ejercicio me salen que fueron 86 dias de diferencia, y haciendo el calculo con SQL, me sale que eran 83

si alguien me puede ayudar a refinar esta logica, se los agradeceria!
  #2 (permalink)  
Antiguo 27/01/2013, 09:24
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Respuesta: Diferencia de dias entre dos fechas por sumas y restas

Buenas,

Para liarte menos con el manejo de fechas, te recomiendo que uses utilidades varias de los lenguajes OOP para las fechas.

En java tienes Calendar, GregorianCalendar... es cosa de buscar cómo instanciar una de estas clases y obtener resultados...

Por ejemplo, suponiendo una entrada de fecha formato ddmmyyyy (por ejemplo, hoy 27-enero-2013 sería 27010213) puedes hacer esto:

Código:
public int getDateDiff(String d1, String d2){
		Long dayT  = ((new GregorianCalendar(Integer.parseInt(d1.substring(4, 8),
				           Integer.parseInt(d1.substring(2, 4) - 1,
				           Integer.parseInt(d1.substrin(0, 2)).getTimeInMillis() -
				       new GregorianCalendar(Integer.parseInt(d2.substring(4, 8)),
				           Integer.parseInt(d2.substring(2, 4)) - 1,
				           Integer.parseInt(d2.substring(0, 2))).getTimeInMillis())
				       / 86400000);

		return dayT.intValue();
	}
Esta función recibe dos Strings y devuelve un número (int). Éste es el número de días de diferencia entre ambas fechas.

Espero te sirva.

Saludos

Etiquetas: dias, diferencia, restas, sumas
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:09.