ayuda con estod dos programas

Iniciado por gibi77, 30 Septiembre 2011, 21:13 PM

0 Miembros y 1 Visitante están viendo este tema.

gibi77

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!!!

Código (java) [Seleccionar]
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");

Valkyr

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.