style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

De nuevo otra duda

Buenas Tardes

Buen Provecho a los que esten comiendo.

Miren comunidad

En mi tiempo de ocio estoy practicando para seguir aprendiendo.

Estaba realizando este programa para así saber como se manejan las fechas ya q si se acuerdan que habia pedido su ayuda bueno me sigo encontrando con el mismo problema pero ahora estoy investigando y todo este relajo.

Bueno para acabar resulta que me marca error de sintaxis el catch y en el último system.out.println no me admite la t a que se debe

Si podrían echarme la mano.

import java.io.*;
import java.util.*;

public class FechaCumple {

        /**
         * @param args
         */

        public static void main(String[] args) {
               
                InputStreamReader isr = new InputStreamReader(System.in);
                BufferedReader br = new BufferedReader(isr);
                String nombre = "Oscar";
               
                try{
                        System.out.println("Oscar y pulse RETURN");
                        nombre = br.readLine();
                        System.out.println("10-julio-1989 y pulse return");
                       
                        int dia = Integer.parseInt(br.readLine());
                        System.out.println(" Indique el dia y el mes en que  " + " nacio y pulse retun");
                       
                        int mes = Integer.parseInt(br.readLine());
                        Calendar llama = Calendar.getInstance();
                        Calendar llama2 = Calendar.getInstance();
                        llama2.set(llama.get(Calendar.YEAR),mes -1, dia);
                        int diferencia = llama.get(Calendar.DAY_OF_YEAR) -
                                                         llama2.get(Calendar.DAY_OF_YEAR);
                       
                        if(diferencia > 0)
                                System.out.println( " Faltan " +diferencia+ " dias ");
                        else if(diferencia == 0)
                                System.out.println("FELICIDADES");
                        else
                                System.out.println  ("Su  cumpleaños fué hace  "  y
                                                Math.abs(diferencia)  +"  dias")  ;
                       
                       
                       
                }
                catch(IOException e )
                :      
                        System.out.println("Error");
                               
                               
               

        }

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

?

este código ni siquiera compila, así como lo veo. En el penúltimo println te falta un + para concatenar la variable y. El catch no trae un bloque sino unos : que no sirven para nada ahí.

El catch es: ... } catch(

El catch es:

...
} catch( IOException e ) {
    System.out.println("Error");
}

La concatenación de string no se hace con una "y", sino con "+" como dice ezamudio.

Imagen de osalgado999

Agradecimiento

Gracias por tu comentario.

y si no compila porque me true en donde se declara int dia entonces ya le hice unos cambios pero ni asi funciona
que me recomiendas para mejorarlo.

saludos.

Imagen de osalgado999

Gracias

De nuevos gracias por atender mi caso y efectivamente no compila una idea para mejorarlo por me truena cuando declaro el día al momento cuando el parseo porque estoy escaso de ideas.

y como se dran cuenta no soy tanto bueno.

y ya se le hice modificaciones y nada sigue tronando,

bueno saludos.

Escribe el mensaje de error

Escribe el mensaje de error que te sale. Quizá lo que te hace falta ahora es saber como leerlos.

Escribelos en tu post y podemos ver que sale.

Te sale algo así? java

Te sale algo así?

java FechaCumple
Oscar y pulse RETURN
Oscar
10-julio-1989 y pulse return
10-julio-1989
Exception in thread "main" java.lang.NumberFormatException: For input string: "10-julio-1989"
        at java.lang.NumberFormatException.forInputString(Unknown Source)
        at java.lang.Integer.parseInt(Unknown Source)
        at java.lang.Integer.parseInt(Unknown Source)
        at FechaCumple.main(FechaCumple.java:18)

Revisa la excepción, dice:

Exception in thread "main" java.lang.NumberFormatException: For input string: "10-julio-1989"

Y el error se originó en:

at FechaCumple.main(FechaCumple.java:18)

Entonces, en la linea 19 del archivo FechaCumple.java dice:

 

                        int dia = Integer.parseInt(br.readLine());

Falla por que tienes que escibir un número y "10-julio-1989" no es un entero. Eso es lo que

Exception in thread "main" java.lang.NumberFormatException: For input string: "10-julio-1989"

Quiere decir: error en el hilo principal, el error es excepción en el formato del número para la entrada "10-julio-1989"

:)

Imagen de osalgado999

respuesta

esto es lo que me arroja

>
Oscar y pulse RETURN

10-julio-1989 y pulse return

Exception in thread "main" java.lang.NumberFormatException: For input string: ""
        at java.lang.NumberFormatException.forInputString(Unknown Source)
        at java.lang.Integer.parseInt(Unknown Source)
        at java.lang.Integer.parseInt(Unknown Source)
        at inge.FechaCumple.main(FechaCumple.java:22)

y no se que hacer.

Ahhh casí lo mismo que yo

Ahhh casí lo mismo que yo puse. Lee mi respuesta anterior , es ( casi ) lo mismo.

Imagen de osalgado999

respuesta

Oye ya le puse el numero asi como me dijiste pero sigue la molestia.

import java.io.*;
import java.util.*;

public class FechaCumple {

        /**
         * @param args
         */

        public static void main(String[] args) {
               
                InputStreamReader isr = new InputStreamReader(System.in);
                BufferedReader br = new BufferedReader(isr);
                String nombre = "Oscar";
               
                try{
                        System.out.println("Oscar ");
                        nombre = br.readLine();
                        System.out.println(10071986 );
                       
                        int dia = Integer.parseInt(br.readLine());
                        System.out.println(7 + 1986);
                       
                        int mes = Integer.parseInt(br.readLine());
                       
                        Calendar llama = Calendar.getInstance();
                        Calendar llama2 = Calendar.getInstance();
                        llama2.set(llama.get(Calendar.YEAR),mes -1, dia);
                       
                        int diferencia = llama.get(Calendar.DAY_OF_YEAR) -
                                                         llama2.get(Calendar.DAY_OF_YEAR);
                       
                        if(diferencia > 0)
                                System.out.println( " Faltan " +diferencia+ " dias ");
                        else if(diferencia == 0)
                                System.out.println("FELICIDADES");
                        else
                                System.out.println  ("Su  cumpleaños fué hace  "  +
                                                Math.abs(diferencia)  +"  dias")  ;
                       
                       
                       
                }
                catch(IOException e ){
                       
                        System.out.println("Error");
                               
                       
                }

        }

}

Y la molestia es... ¿cual?

Y la molestia es... ¿cual?

A mi me sale esto:

java CumpleFecha
Oscar
oscar
10071986
10071986
1993
1993
Su  cumplea±os fuÚ hace  52  dias
Imagen de osalgado999

Ya quedo

Si perdón es que estaba haciendo algo no estaba tecleado -

una cosa

pero no hay problema.

Y otra gracias

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">