elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  ayuda con estod dos programas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con estod dos programas  (Leído 2,045 veces)
gibi77

Desconectado Desconectado

Mensajes: 19


Ver Perfil
ayuda con estod dos programas
« en: 30 Septiembre 2011, 21:13 pm »

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
  1. void transcurrido(){
  2.        int año=Integer.parseInt(JOptionPane.showInputDialog("Dame el año a partir del cual quieres calcular\nejem: 2000"));
  3.        int mes=Integer.parseInt(JOptionPane.showInputDialog("Dame el mes a partir del cual quieres calcular"));
  4.        int dia=Integer.parseInt(JOptionPane.showInputDialog("Dame el dia a partir del cual quieres calcular"));
  5.        GregorianCalendar gc = new GregorianCalendar(año, mes, dia);
  6.        int añoac=Integer.parseInt(JOptionPane.showInputDialog("hasta que año quieres calcular?\nejem: 2000"));
  7.        int mesac=Integer.parseInt(JOptionPane.showInputDialog("hasta que mes quieres calcular?"));
  8.        int diaac=Integer.parseInt(JOptionPane.showInputDialog("hasta que dia quieres calcular?"));
  9.        GregorianCalendar gc1 = new GregorianCalendar(añoac, mesac, diaac);
  10.        Date fec1 = gc.getTime();
  11.        Date fec2 = gc1.getTime();
  12.        long time = fec2.getTime() - fec1.getTime();
  13.        JOptionPane.showMessageDialog(null,"han transcurrido: "+ time/(3600*24*1000)+" dias");


« Última modificación: 1 Octubre 2011, 14:00 pm por Debci » En línea

Valkyr


Desconectado Desconectado

Mensajes: 646


Divide y vencerás


Ver Perfil
Re: ayuda con estod dos programas
« Respuesta #1 en: 1 Octubre 2011, 12:51 pm »

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.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Me pueden estafar con estod datos?? como? seria nºcuenta, direc. Nº ss ,DNI
Seguridad
Giorgicw 0 2,124 Último mensaje 16 Marzo 2012, 15:47 pm
por Giorgicw
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines