0 votos
por (40 puntos) en Java
Necesito crear el metodo con los parámetros dia y mes en que nació una persona; como resultado debe imprime signoZodiacal que corresponde a una persona.

Y demás de como valido la información ingresada.

Por favor la solución la necesito a lo más tardar mañana cerca de la media noche.


2 Respuestas

0 votos
por (8.5k puntos)
Buenas!

Se me ocurre que puedes crear una clase SignoZodiaco:

<pre lang='java' lineno='1'>public class SignoZodiaco{

    String nombre;
    Date fechaInicio;
    Date fechaFin;

    public SignoZodiaco(String nombre,Date fechaInicio,Date fechaFin) {
    this.nombre = nombre;
        this.fechaInicio = fechaInicio;
        this.fechaFin = fechaFin;
    }
}
Una vez hecho esto cargamos una lista con los 12 signos:

<pre lang='java' lineno='1'>List listaZodiaco = new ArrayList();
DateFormat format = new SimpleDateFormat();
listaZodiaco.add(new SignoZodiaco("Aries",format.parse("20/03/2009"),format.parse("18/04/2009"));
...
Despues se crearia el metodo para obtener el signo del zodiaco a partir de un mes y un dia determinados (porque no se pasa el año??)

<pre lang='java' lineno='1'>obtenerSigno(String dia, String mes)
{
  Date fechaNacimiento = format.parse(dia+"/"+mes+"/2009");
/*recorremos la lista con los 12 signos

  y vamos comprobando si la fecha de nacimiento es posterior a la de inicio de un     signo y anterior a la de fin (metodos after() y before() de la clase Date) si se cumplen esas dos condiciones devolvemos el nombre del Signo correspondiente*/

}

Espero que aunque no esté todo el código implementado te sirve de ayuda...si tengo tiempo luego haré el programa entero.

Un saludo.


0 votos
por (8.5k puntos)
Buenas otra vez!

Te pego la clase de prueba que hice por si te ayuda un poco mas:

<pre lang='java' lineno='1'>public class TestZodiaco {

    /**
     * @param args
     * @throws ParseException
     */
    public static void main(String[] args) throws ParseException {

        String nombreSigno =  comprobarSigno("08", "04");
        System.out.println(nombreSigno);

    }

    private static String comprobarSigno(String dia, String mes) throws ParseException {
        ArrayList listaZodiaco = new ArrayList();
        DateFormat format = new SimpleDateFormat("dd/MM");

        listaZodiaco.add(new SignoZodiaco("Aries",format.parse("20/03"),format.parse("18/04")));

        Date fechaNacimiento = format.parse(dia+"/"+mes);
        String nombre="";

        for (int i = 0; i < listaZodiaco.size(); i++) {
            SignoZodiaco signo = (SignoZodiaco) listaZodiaco.get(i);
            if(fechaNacimiento.after(signo.getFechaInicio()) &amp;&amp;
                    fechaNacimiento.before(signo.getFechaFin())    )
            {
                nombre = signo.getNombre();
            }
        }

        return nombre;
    }

}

Preguntas relacionadas

0 votos
1 respuesta
preguntado por Arkhan (40 puntos) Ene 28, 2016 en General
0 votos
3 respuestas
0 votos
2 respuestas
0 votos
0 respuestas
preguntado por daniela (20 puntos) Ene 15, 2023 en Java
0 votos
0 respuestas
preguntado por yue (20 puntos) Nov 19, 2020 en Java
Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código

Categorías

...