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

restar fechas en java

Estas en el tema de restar fechas en java en el foro de Java en Foros del Web. holas, hace poco empece a programa en java, para una aplicacion q estoy haciendo necesito saber como puedo restar 2 fechas en formato YYYY/MM/DD y ...
  #1 (permalink)  
Antiguo 25/11/2007, 18:55
 
Fecha de Ingreso: diciembre-2004
Mensajes: 418
Antigüedad: 19 años, 4 meses
Puntos: 2
Exclamación restar fechas en java

holas, hace poco empece a programa en java, para una aplicacion q estoy haciendo necesito saber como puedo restar 2 fechas en formato YYYY/MM/DD
y que me arroje un resultado en dias, ademas las fechas son ingresadas por teclado osea son String.

espero su apoyo. gracias
  #2 (permalink)  
Antiguo 26/11/2007, 04:57
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: restar fechas en java

Puedes transformar las cadenas en objetos del tipo Date a traves de SimpleDateFormat:
https://java.sun.com/j2se/1.4.2/docs...ateFormat.html y despues de eso puedes, por ejemplo, averiguar el tiempo transcurrido entre una fecha y otra restando "getTime()" de cada una. Luego transformas la diferencia en días y listo.

O puedes usar la libreria Joda Time que te hace eso de forma fácil: http://joda-time.sourceforge.net/key_interval.html

S!
  #3 (permalink)  
Antiguo 26/11/2007, 19:23
 
Fecha de Ingreso: diciembre-2004
Mensajes: 418
Antigüedad: 19 años, 4 meses
Puntos: 2
Re: restar fechas en java

bueno, laverdad que aun no estoy del todo empapado en java, pero algo asi tb llegue a leer en otros foros, pero al final pude enocntrar la solucion:

con esto conviertes String a Date

public static Date aDate(String strFecha){
SimpleDateFormat formatoDelTexto = new SimpleDateFormat("yyyy/MM/dd");
Date fecha = null;

try {
fecha = formatoDelTexto.parse(strFecha);
} catch (java.text.ParseException ex) {
ex.printStackTrace();
}
return fecha;


}


y con esto las restas

public static int fechasDiferenciaEnDias(Date fechaInicial, Date fechaFinal) {

DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM);
String fechaInicioString = df.format(fechaInicial);
try {
fechaInicial = df.parse(fechaInicioString);
}
catch (ParseException ex) {
}

String fechaFinalString = df.format(fechaFinal);
try {
fechaFinal = df.parse(fechaFinalString);
}
catch (ParseException ex) {
}

long fechaInicialMs = fechaInicial.getTime();
long fechaFinalMs = fechaFinal.getTime();
long diferencia = fechaFinalMs - fechaInicialMs;
double dias = Math.floor(diferencia / (1000 * 60 * 60 * 24));
return ( (int) dias);
}

gracias de todas fromas por tu ayuda , hasta otra.
  #4 (permalink)  
Antiguo 27/11/2007, 01:17
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: restar fechas en java

Ese es precisamente el primer método que te he dicho .

S!
  #5 (permalink)  
Antiguo 22/04/2008, 14:23
 
Fecha de Ingreso: abril-2008
Mensajes: 3
Antigüedad: 16 años
Puntos: 0
Re: restar fechas en java

Hola , estan interesantes las respuestas, pero si tuviera una fecha cualesquiera y quisiera restarle un dia, como haria?
  #6 (permalink)  
Antiguo 23/04/2008, 06:26
Avatar de djagu_26  
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 518
Antigüedad: 16 años, 3 meses
Puntos: 6
Re: restar fechas en java

Bueno tranformas la fecha a long con el metodo getTime (esto te lo devuelve en milisegundos) y luego para saber cuantos milisegundos es un dia es asi

dia = nroDias * (24 * 60 * 60 * 1000)

fecha.getTIme - dia

saludos
__________________
"La magia no existe, la programacion si"

A/P Agustin Sivoplas
[email protected]
  #7 (permalink)  
Antiguo 15/04/2009, 11:33
 
Fecha de Ingreso: abril-2008
Mensajes: 5
Antigüedad: 16 años
Puntos: 1
Respuesta: Re: restar fechas en java

Cita:
Iniciado por hats Ver Mensaje
bueno, laverdad que aun no estoy del todo empapado en java, pero algo asi tb llegue a leer en otros foros, pero al final pude enocntrar la solucion:

Con esto conviertes string a date

public static date adate(string strfecha){
simpledateformat formatodeltexto = new simpledateformat("yyyy/mm/dd");
date fecha = null;

try {
fecha = formatodeltexto.parse(strfecha);
} catch (java.text.parseexception ex) {
ex.printstacktrace();
}
return fecha;


}


y con esto las restas

public static int fechasdiferenciaendias(date fechainicial, date fechafinal) {

dateformat df = dateformat.getdateinstance(dateformat.medium);
string fechainiciostring = df.format(fechainicial);
try {
fechainicial = df.parse(fechainiciostring);
}
catch (parseexception ex) {
}

string fechafinalstring = df.format(fechafinal);
try {
fechafinal = df.parse(fechafinalstring);
}
catch (parseexception ex) {
}

long fechainicialms = fechainicial.gettime();
long fechafinalms = fechafinal.gettime();
long diferencia = fechafinalms - fechainicialms;
double dias = math.floor(diferencia / (1000 * 60 * 60 * 24));
return ( (int) dias);
}

gracias de todas fromas por tu ayuda , hasta otra.
no funciona si le das dos fechas de diferente mes
  #8 (permalink)  
Antiguo 15/04/2009, 11:58
 
Fecha de Ingreso: abril-2008
Mensajes: 5
Antigüedad: 16 años
Puntos: 1
Respuesta: Re: restar fechas en java

Cita:
Iniciado por stdedwin Ver Mensaje
no funciona si le das dos fechas de diferente mes
sI FUNCIONA,,, CORRECION!!!
  #9 (permalink)  
Antiguo 04/11/2009, 03:25
 
Fecha de Ingreso: mayo-2009
Mensajes: 169
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: restar fechas en java

Espero que esto te sirva:
http://felinfo.blogspot.com/2009/09/...ias-entre.html
__________________
http://felinfo.blogspot.com/
  #10 (permalink)  
Antiguo 03/03/2011, 21:35
Avatar de hwongu  
Fecha de Ingreso: junio-2008
Ubicación: Trujillo
Mensajes: 93
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: restar fechas en java

Puedes ver un ejemplo de como manejar las fechas con java en

http://www.programandoconcafe.com/20...autildate.html

Saludos
__________________
-
Atentamente
Ing. Henry Wong
Ing. de Computaciones y Sistemas
  #11 (permalink)  
Antiguo 01/04/2011, 23:11
 
Fecha de Ingreso: abril-2011
Mensajes: 14
Antigüedad: 13 años
Puntos: 0
Respuesta: restar fechas en java

Hola a todos,

En java existe el objeto "Calendar" que tiene funciones para aritmética de fecha. Para este lado del globo, se crea una variable tipo "GregorianCalendar" y ésta tiene métodos "add" para añadir (o restar, con valores negativos) ya sea días, meses, años, horas, minutos, segundos, o más raro aún, semanas...).

Un objeto Calendar puede convertirse desde y hacia Date utilizando las funciones "getTime()" y "setTime()".

Saludos.
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

SíEste tema le ha gustado a 2 personas (incluyéndote)




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