Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/10/2010, 04:35
Iggy16
 
Fecha de Ingreso: noviembre-2009
Mensajes: 16
Antigüedad: 15 años
Puntos: 0
Respuesta: [DUDA] Clase "Fecha"

Cita:
Iniciado por Fuzzylog Ver Mensaje
Truco para comparar... compones dos String con añomesdia y los parseas a enteros y luego comparas.

En cuanto a tantos ifs.... debes hacer un if y dentro (condicion1 && condicion2 && condicion3).

No abuses de los returns.. si haces un return sales del método por lo que si retornas antes de hacer todas las comparaciones te va a dar resultados incorrectos, en todo caso usa un boolean y cambialo a false en caso de que no cumpla la condición, y luego si sigue siendo true pasas a la siguiente condicion, etc. El return lo haces al final dependiendo de si se verifica o no.

En cuanto al constructor creo que no lo has entendido bien

public Fecha(int dd, int mm, int aaaa) { // Inicio del método constructor --> Fijate bien q los he nombrado de forma distinta. Si pones dia1, mes1, ano1 debes cambiar esos valores pq el programa no los reconocerá.
// Comprobaciones
//1º formato -> Cambias ints a Strings y comparas el tamaño. Si length() de los strings es distinta de 2 en dia o mes, y distinta de cuatro en año, se han introducido datos incorrectos
// 2 Mes ... debe estar entre 1 y 12 ok
// 3 Dia ... depende de cada mes debe estar entre 1 y 30/31, y en el caso especial de mes == 2 (febrero) debe ser 28, o 29 en años bisiestos (y debes implementar la comprobacion de bisiesto tb).
//Si se cumplen los datos
// Forma de setear los datos
this.dia = dd; // porque puse int dd en la declaración del método constructor
this.mes = mm;
this.ano = aaaa; // EVITA LA ñ!!!
//Si no se cumplen
throw new Exception... //La que sea. Igual tienes que decirle al programa que va a lanzar una excepción al declarar el constructor. Míralo.
}

// Obtiene la fecha con este formato
private String getFechaFormateada(Fecha f) {
String fechaComp = String.valueOf(f.dia) + "/" + String.valueOf(f.mes) + "/" String.valueOf(f.ano);
return fechaComp; // Devuelve la fecha con el formato dado a partir de una fecha que has creado con dia, mes y año por separado.
}

Aún queda mucho por pulir, pero espero que te sirva de guía

Pfffffff, apenas he dado 3 o 4 clases de Programación y muchas cosas de las que dices me sirven y otras me suenan a chino, pero nos mandaron hacer esto para ver qué tal vamos...

Ya me di cuenta de las eñes, pondré year en vez de año o algo así, además cambiaré tantos ifs agrupándolos entre paréntesis, y según oí en el constructor no se pueden poner valores booleanos "true" o "false" porque el constructor no devuelve nada.

Mas o menos voy entendiendo mis errores, pero modificar el código de tal manera que lo entienda (asequible para haber hecho 3-4 clases de Programacion I en mi Ingeniería) es lo que quiero hacer xd