lo que pasa es que tengo que hacer un algoritmo que me determine los dias transcurridos entre ua fecha dada y la actual. hice un codigo pero no me funciona muy bien... quisiera que me ayudaran con el.
y tambien tengo que hacer un programa que aceepte un mnumero de dias, mes y año y los visualice en formato dd/mm/aa. alguien me puede ayudar?? de antemano gracias!!!
void transcurrido(){
int año=Integer.parseInt(JOptionPane.showInputDialog("Dame el año a partir del cual quieres calcular\nejem: 2000"));
int mes=Integer.parseInt(JOptionPane.showInputDialog("Dame el mes a partir del cual quieres calcular"));
int dia=Integer.parseInt(JOptionPane.showInputDialog("Dame el dia a partir del cual quieres calcular"));
GregorianCalendar gc = new GregorianCalendar(año, mes, dia);
int añoac=Integer.parseInt(JOptionPane.showInputDialog("hasta que año quieres calcular?\nejem: 2000"));
int mesac=Integer.parseInt(JOptionPane.showInputDialog("hasta que mes quieres calcular?"));
int diaac=Integer.parseInt(JOptionPane.showInputDialog("hasta que dia quieres calcular?"));
GregorianCalendar gc1 = new GregorianCalendar(añoac, mesac, diaac);
Date fec1 = gc.getTime();
Date fec2 = gc1.getTime();
long time = fec2.getTime() - fec1.getTime();
JOptionPane.showMessageDialog(null,"han transcurrido: "+ time/(3600*24*1000)+" dias");
Yo lo que haría sería coger y leer una fecha, al leerla comprobar que los datos introducidos son correctos, ya que, por ejemplo, no tiene sentido que introduzcan un mes 13 o un día 38, al igual con los años que no pueden ser negativos.
Una vez que los has leido haces la diferencia y punto. Lo que has propuesto lo he ejecutado y funciona correctamente, lo único que yo haría sería devolver el valor absoluto, de esta forma no te importaría que te diesen en primer lugar una fecha futura y en segundo lugar una fecha actual.
Por otro lado el método getTime() devuelve el número de milisegundos transcurridos desde 1970, por lo tanto una fecha anterior a esta nos devolvería un valor negativo.
Lo de visualizar no se a que te refieres exactamente.
Saludos.