Autor
|
Tema: ayuda con codigo (Leído 4,539 veces)
|
andaluz
Desconectado
Mensajes: 333
|
hola a todos, he realizado un programa que me analice una fecha introducida por teclado separada por ":", la cual me tiene que decir al introducirle una fecha: - si la fecha es valida. - me indicara en la estacion del año estamos. aqui va el codigo: package ejer_repaso2; import java.io.*; public class Main { public static void main (String[] args ) { int dia,mes,anio; boolean enc; int i=0; int d=0; enc=false; int m=0; try { System. out. println("Introduce la fechaa: "); fecha=br.readLine(); trozos=fecha.split(":"); while(i<trozos.length) { if(EsNum(trozos[i])) { enc=true; } else { i++; } } if(anio>1999 && anio<3000) { if(mes>0 && mes<13) { if(((mes==1 || mes==3 || mes==5 || mes==7 || mes==8 || mes==10 || mes==12) || (mes==4 || mes==6 || mes==9 || mes==11) && d>=1 && d<=30) || (m==2 && d>=1 && d<=28)) { System. out. println("Fecha valida"); } else { System. out. println("Fecha no valida"); } } else { System. out. println("Fecha no valida"); } } else { System. out. println("Fecha no valida"); } /* *estaciones * primavera[21/03] asta (21/06) * verano [21/06] asta (21/09) * otonio [21/09] asta (21/12) * invierno [21/12] asta (21/03) */ if(((mes==3 && d>=3) || (mes==4 && d>=1 && mes==4 && d>=30) || (mes==5 && d>=1 && mes==5 && d>=31) || (mes==6 && d>=1 && mes==6 && d>21))) { System. out. println("Es Primavera"); } else { if(((mes==6 && d>=21) || (mes==7 && d>=1 && mes==7 &&d>=31) || (mes==8 && d>=1 && mes==8 && d>=31) || (mes==9 && d>=1 && m==9 && d>21))) { System. out. println("Es Verano"); } else { if(((mes==9 && d>=21) || (mes==10 && d>=1 && mes==10 &&d>=31) || (mes==11 && d>=1 && mes==11 && d>=31) || (mes==12 && d>=1 && m==12 && d>21))) { System. out. println("Es Otoño"); } else { System. out. println("Es Invierno"); } } } } { System. out. println("Error en la lectura "+ex ); } } public static boolean EsNum (String fex ) { int j=0; boolean e=false; while(j<fex.length()) { { e=true; } else { e=false; } } return e; } }
|
|
|
En línea
|
|
|
|
andaluz
Desconectado
Mensajes: 333
|
el fallo es que no me imprime nada al introducirle la fecha.
|
|
|
En línea
|
|
|
|
Chuidiang
|
En el método EsNum() no incrementas la j, así que supongo que se queda en el while por los siglos de los siglos. Se bueno.
|
|
|
En línea
|
|
|
|
andaluz
Desconectado
Mensajes: 333
|
es verdad, se me habia olvidado incrementar "j", por eso fallaba. gracias
|
|
|
En línea
|
|
|
|
andaluz
Desconectado
Mensajes: 333
|
me gustaria saber que fallo tiene este codigo, al utilizar || y &&, esque me lio en esto if(((mes==3 && d>=3) || (mes==4 && d>=1 && mes==4 && d>=30) || (mes==5 && d>=1 && mes==5 && d>=31) || (mes==6 && d>=1 && mes==6 && d>21))) { System. out. println("Es Primavera"); } else { if(((mes==6 && d>=21) || (mes==7 && d>=1 && mes==7 &&d>=31) || (mes==8 && d>=1 && mes==8 && d>=31) || (mes==9 && d>=1 && m==9 && d>21))) { System. out. println("Es Verano"); } else { if(((mes==9 && d>=21) || (mes==10 && d>=1 && mes==10 &&d>=31) || (mes==11 && d>=1 && mes==11 && d>=31) || (mes==12 && d>=1 && m==12 && d>21))) { System. out. println("Es Otoño"); } else { System. out. println("Es Invierno"); } } } }
|
|
|
En línea
|
|
|
|
andaluz
Desconectado
Mensajes: 333
|
me pueden ayudar a resolver este codigo, me dice siempre que es invierno, no me dice la estacion de la fecha que le introduzco, creo que las condiciones || y && no estan bien definidas, me ayudan a definirlas bien??
|
|
|
En línea
|
|
|
|
Chuidiang
|
Hazlo más simple y piensa un poco en todo el follón que tienes. Fíjate en el primer if, hay un trozo que pone (mes==4 && d>=1 && mes==4 && d>=30) suponiendo mes 4, tiene que ser mayor que 1 y mayor que 30. Sobre el primero ¿no? Fija las cuatro fechas (mes/dia) de cambio de estacion en algun sitio y el if debe ser muy tonto si empiezas por el principio de año if ( diaActual < fechaInicioPrimavera ) ---> es invierno else if ( diaActual < fechaInicioVerano ) ---> es primavera ....
Se bueno.
|
|
|
En línea
|
|
|
|
andaluz
Desconectado
Mensajes: 333
|
ok, pero la verdad es que entiendo eso que me dices, como lo deberia de hacer? creoque me he equivocado (mes==4 && d>=1 && mes==4 && d<=30) ya que lo que quiero hacer es coger todos los dias en los que esta cada estacion del año.
|
|
|
En línea
|
|
|
|
|
|