Java - JAVA-Programa que muestra tu signo zodiacal. Sugerencias?

 
Vista:
Imágen de perfil de Osvaldo

JAVA-Programa que muestra tu signo zodiacal. Sugerencias?

Publicado por Osvaldo (1 intervención) el 07/03/2017 23:44:38
Hola que tal, este preograma es un proyecto escolar, se trata de un programa que te muestra tu signo zodiacal
al ingresar tu cumpleaños, cualquier sugerencia será bien recibida. Gracias

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package proyecto5_unidad1;
import java.util.Scanner;
public class Proyecto5_Unidad1 {
    public static void main(String[] args) {
    Scanner da=new Scanner(System.in);
    int reset;
    do {
    System.out.println("::QUE SIGNO ZODIACAL ERES?::");
    System.out.println("EN QUE MES ES TU CUMPLEAÑOS? \n1.-Enero\n2.-Febrero\n3.-Marzo\n4.-Abril\n5.-Mayo\n6.-Junio"
            + "\n7.-Julio\n8.-Agosto\n9.-Septiembre\n10.-Octubre\n11.-Noviembre\n12.-Diciembre");
    System.out.println();
    int mes=da.nextInt();
    System.out.println("EN QUE DÍA ES?");
    System.out.println();
    int dia=da.nextInt();
    if(dia>=22 && dia<=31 && mes==12 || dia>=1 && dia<=20 && mes==1){
        System.out.println("Tu signo zodiacal es CAPRICORNIO");
    }else if (dia>=21 && dia<=31 && mes==1 || dia>=1 && dia<=19 && mes==2){
        System.out.println("Tu signo zodiacal es ACUARIO");
    }else if (dia>=20 && dia<=29 && mes==2 || dia>=1 && dia<=20 && mes==3){
        System.out.println("Tu signo zodiacal es PISCIS");
    }else if (dia>=21 && dia<=31 && mes==3 || dia>=1 && dia<=19 && mes==4){
        System.out.println("Tu signo zodiacal es ARIES");
    }else if (dia>=20 && dia<=30 && mes==4 || dia>=1 && dia<=20 && mes==5){
        System.out.println("Tu signo zodiacal es TAURO");
    }else if (dia>=21 && dia<=31 && mes==5 || dia>=1 && dia<=21 && mes==6){
        System.out.println("Tu signo zodiacal es GÉMINIS");
    }else if (dia>=22 && dia<=30 && mes==6 || dia>=1 && dia<=21 && mes==7){
        System.out.println("Tu signo zodiacal es CANCER");
    }else if (dia>=22 && dia<=31 && mes==7 || dia>=1 && dia<=21 && mes==8){
        System.out.println("Tu signo zodiacal es LEO");
    }else if (dia>=22 && dia<=31 && mes==8 || dia>=1 && dia<=22 && mes==9){
        System.out.println("Tu signo zodiacal es VIRGO");
    }else if (dia>=23 && dia<=30 && mes==9 || dia>=1 && dia<=22 && mes==10){
        System.out.println("Tu signo zodiacal es LIBRA");
    }else if (dia>=23 && dia<=31 && mes==10 || dia>=1 && dia<=21 && mes==11){
        System.out.println("Tu signo zodiacal es ESCORPIO");
    }else if (dia>=22 && dia<=30 && mes==11 || dia>=1 && dia<=21 && mes==12){
        System.out.println("Tu signo zodiacal es SAGITARIO");
    }
    else{
        System.out.println("FECHA INVÁLIDA");
    }
    System.out.println("Quieres reiniciar el programa? [Si-1/No-2]");
    reset=da.nextInt();
    }while (reset==1);
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 190
Ha disminuido su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

JAVA-Programa que muestra tu signo zodiacal. Sugerencias?

Publicado por preguntas (70 intervenciones) el 08/03/2017 04:26:01
Bueno, tu programa se ve perfecto.
Pero siempre se puede resumir en menos lineas. Por ejemplo, mira este codigo (falta pulir).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
System.out.print("Ingrese dia y mes de nacimiento separados por un guión (Ej: 01-02): ");
        SimpleDateFormat formato = new SimpleDateFormat("dd-MM");
        Date fechaIngresada = formato.parse(new Scanner(System.in).nextLine());
 
        Object[][] rangos = {
            {formato.parse("21-03"),formato.parse("20-04"), "Aries"},
            {formato.parse("21-04"),formato.parse("21-05"), "Tauro"},
        };
 
        String signo = "";
        for(Object[] rango : rangos){
            if(fechaIngresada.equals((Date)rango[0]) || fechaIngresada.equals((Date)rango[1]) || fechaIngresada.after((Date)rango[0]) && fechaIngresada.before((Date)rango[1])) signo = rango[2].toString();
        }
        System.out.println("Segun la fecha dada, su signo es: "+signo);

Solo puse 2 signos.
Se trata de comparar fechas con los métodos disponibles de la clase Date.
los rangos de fechas y signos las almacene dentro de un array multidimencional (ahora es solo cuestión de ir agregando mas. Si. de perezoso solo puse 2).
Pues eso... pruebalo y si quieres puedes seguir adaptándolo a los requerimientos de tu programa.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar