• Viernes 8 de Noviembre de 2024, 20:58

Autor Tema:  [DUDA] Clase "Fecha"  (Leído 1008 veces)

Iggy16

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
[DUDA] Clase "Fecha"
« en: Jueves 14 de Octubre de 2010, 19:44 »
0
Hola, quiero que me ayuden a verificar si mi código está bien hecho;
es un ejercicio donde se pide diseñar una clase llamada "Fecha" cuyos
objetos deben gestionar información tipo dd/mm/aaaa. Los atributos han
de ser inaccesibles desde el exterior (private), debe facilitar métodos
constructores de objetos Fecha, debe facilitar un método que devuelva un
String de la forma dd/mm/aaaa, debe facilitar la comparación de fechas
(si son iguales o si una es mayor que otra) y debe facilitar un método
que permita redefinir el valor de la fecha gestionada por un objeto Fecha.

Mi code es:
Citar
public class Fecha {

private int dia;
private int mes;
private int año;

private int dd/mm/aa;

public int fecha() {
return fecha;
}

public Fecha(int dia, int mes, int año) {  // Inicio del método constructor
dia=dd;mes=mm;año=aaaa;

if dia>0 {
if dia<=31 {
dia=dd;

return(true);
 }
}

else {
return(false);
}

if mes>0 {
if mes<=12 {
mes=mm;
 return(true);
 }
}

else {
return(false);
}

if año>=1910 {
if año<=2010 {
año=aaaa
return(true);
 }
}

else {
return(false);
}

} // Fin del método constructor


public int consultarDia() {
return dia;
}

public int consultarMes() {
return mes;
}

public int consultarAño() {
return año;
}

public Fecha1(dia1,mes1,año1) {
dia1=dd;mes1=mm;año1=aaaa
}

public Fecha2(dia2,mes2,año2) {
dia2=dd;mes2=mm;año2=aaaa
}

Fecha Fecha1 = newFecha(dia1,mes1,año1),
      Fecha2 = newFecha(dia2,mes2,año2);

/*
* Comparar si Fecha1 es mayor que Fecha2
*/

if (año1>año2) {
return(true);
}

else {
if(año1==año2) {
if(mes1>mes2) {
return(true);
  }
 }
}

if(mes1==mes2) {
if(año1==año2) {
if(dia1>dia2) {
return(true);
  }
 }
}

else {
return(false);
}

/*
* Comparar si Fecha1 es igual a la Fecha2
*/

if(año1==año2) {
if(mes1==mes2) {
if(dia1==dia2) {
return(true);
  }
 }
}

else {
return(false);
}

Gracias.

polly_

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: [DUDA] Clase "Fecha"
« Respuesta #1 en: Lunes 18 de Octubre de 2010, 21:28 »
0
Tienes algunos fallos:

La variable
Código: Java
  1. private int dd/mm/aa;
  2.  
esta mal declarada, no se puede usar el caracter '/' para un identificador de variable en Java.
Las expresiones booleanas van entre paréntesis en la sentencia 'if'.
Los constructores de clase no devuelven ningún valor (tu haces que el constructor Fecha devuevla un booleano).

Tienes algunos fallos más, pero los anteriores son los más graves. Tu código ni siquiera compila.

El código podría ser así:
Código: Java
  1.  
  2. public class Fecha {
  3.  
  4.     private int dia;
  5.     private int mes;
  6.     private int anyo;
  7.  
  8.     public Fecha(int d, int m, int a) {
  9.         dia = d;
  10.         mes = m;
  11.         anyo = a;
  12.     }
  13.  
  14.     public int getDia() {
  15.         return dia;
  16.     }
  17.  
  18.     public int getMes() {
  19.         return mes;
  20.     }
  21.  
  22.     public int getAnyo() {
  23.         return anyo;
  24.     }
  25.  
  26.     public String toString() {
  27.         String output = String.format("%02d/%02d/%02d", dia, mes, anyo);
  28.         return output;
  29.     }
  30. }
  31.  
  32.  

S2