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

Ayuden a este pobre newbie

Pues miren, tengo que hacer un proyecto en eclipse que pida al usuario su fecha de nacimiento y que de ahi le calcule cuantos años tiene, meses y dias, la bronca entra cuando tengo que poner los años bisiestos.

Alguna ayuda??

Gracias y de antemano ahi les van unas primas de moral distraida

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

bisiestos

La regla para los años bisiestos es que son los divisibles entre 4, excepto si son además divisibles entre 100. Pero si ADEMAS son divisibles entre 400, entonces SI son bisiestos.

Ejemplos:

1984 es bisiesto (divisible entre 4, no divisible entre 100)
1900 NO es bisiesto (divisible entre 4, pero ademas divisible entre 100)
2000 es bisiesto (divisible entre 4, divisible entre 100 lo descalificaria, pero es divisible entre 400 por lo tanto si es)

Sumar, restar, multiplicar y dividir

Este es un problema de las operaciones básicas, si lo haces con Eclipse o con su santa madre no es mayor problema, el problema en realidad es comprender lo que quieres hacer. Formas de resolver, a mi se me ocurre:

Haz el conteo de días. Es bien sencillo, cada año tiene 365, por tanto basta con una simple multiplicación de los 365 días por el número de años...Faltaría saber cuales son bisiestos, con la explicación que dio @ezamudio puedes hacer una función que regrese verdadero/falso, si regresa verdadero le sumas 1 al resultado de la multiplicación...Después de obtener lo días recurres a divisiones y ya te quedaría algo cómo: "Tu edad exacta es XX años con XX meses y XX días".

Miren jovenes ilustres, ya

Miren jovenes ilustres, ya tengo la mayoria, nada mas que aun no me imprime cuando el año es bisisesto y neta que no le encuentro aunque supongo que ha de ser una mmda.

public static void main(String[] args) {
                       
                       
    int x,y,z,dh,ms,ah;
    java.util.Scanner S = new java.util.Scanner(System.in);

    System.out.println("Dime que dia es hoy ");
    dh = S.nextInt();
    System.out.println("Dime en que mes estamos (recuerda solo el numero del mes decide cual es del 1 al 12)" );
    ms = S.nextInt();
    System.out.println("Dime que año es ");
    ah = S.nextInt();                          
    System.out.println("Dime el dia en que naciste");
    x = S.nextInt();
    System.out.println("Dime el mes en que naciste (recuerda solo el numero del mes decide cual es del 1 al 12)");
    y = S.nextInt();
    System.out.println("Dime el año en que naciste");
    z = S.nextInt();

    int dia =Math.abs(dh-x);
    int  mes=Math.abs(ms-y);
    int  años=Math.abs(ah-z);

    System.out.println("tienes "+años+" años "+mes+" meses "+dia+" dias");
    int año = 0;              
    if ((( años % 4 == 0 ) && ( años % 100 != 0 )) || ( años % 400 == 0 ))
    System.out.println(z+" Ay woooeeee Naciste en bisiesto, que loco");
    else
    System.out.println(" Naciste en año normal mi chavo" );

}

Ahi esta mi codigo para que no digan que quiero todo en bandeja, ojala y solo me puedan ayudar con ese detalle.

Un saludo

Muy bien.. esta super fácil

Muy bien.. esta super fácil pero seguramente ya de tanto darle vueltas no lo ves:

Estás haciendo la comparación contra la edad y no contra el año de nacimiento.

Osease que reemplaza if ((( años % 4 == 0 ) && ( años % 100 != 0 )) || ( años % 400 == 0 ))

con     if ((( año % 4 == 0 ) && ( año % 100 != 0 )) || ( año % 400 == 0 ))

Re: Muy bien.. esta super fácil

Yo lo cambiaría un poco más verborréico por fines prácticos:

if(anyo % 4 == 0){
----if(anyo % 400 == 0)
--------return true;
----else if(anyo % 100 != 0)
--------return false;
----return true;
}

Pero me encanta la forma de teclear menos líneas.

Muchas gracias muchachos

Ya quedo jovenes, gracias por ayudarme, son ustedes muy amables y pues pasen las direcciones para mandarles unas gordas!!!

no es cierto no quedo

hahah no quedo amigos, ahora me imprime puro "naciste en bisiesto"

Imagen de ezamudio

if

Si copiaste el if de wishmaster, está mal. Usa el de Oscar:

public boolean esBisiesto(int a) {
  return (a%4==0 && a%100!=0) || a%400==0;
}

El de wishmaster devuelve true para cualquier número divisible entre 4.

perdon amigo ocupe el de

perdon amigo ocupe el de oscar, y aun asi no me queda, y lo que pusiste tu no se donde pegarlo.

Espero no molestarlos
gracias de antemano

Aqui puedes encontrar algo de

Re: if

Si, a la próxima no traduciré Python al vuelo, una disculpa.

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