Ver Mensaje Individual
  #5 (permalink)  
Antiguo 17/10/2010, 08:16
Iggy16
 
Fecha de Ingreso: noviembre-2009
Mensajes: 16
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: [DUDA] Clase "Fecha"

¿Esto estaría bien?

Mira.


Código:
public class Fecha {

private int dia;
private int mes;
private int anio;


public Fecha(int _dia, int _mes, _anio) { 
dia=_dia;
mes=_mes;
año=_anio;
}

public int consultaDia() { 
return dia; 
} 

public int consultaMes() { 
return mes; 
} 

public int consultaAnio() { 
return anio; 
} 

public void modificaDia(int _dia) {
dia=_dia;
}

public void modificaMes(int _mes) {
mes=_mes;
}

public void modificaAnio(int _anio) {
anio=_anio;
}

public Fecha consultarFecha() { 
return this; 
} 


public FormatoFecha() {
return ( dia + " / " + mes + " / " + anio );
}


public int comparararFecha( Fecha fecha ) {

       int resultado = 0;
   
      if ( anio < fecha.consultaAnio() ) {
         resultado = -1;
      } 
      else if ( anio > fecha.consultaAnio() ) {
         resultado = 1;
      } 
      else {		
      
         if ( mes < fecha.consultaMes() ) {
            resultado = -1;
         } 
         else if ( mes > fecha.consultaMes() ) {
            resultado = 1;
         } 
         else {	
         
            if ( dia < fecha.consultaDia() ) {
               resultado = -1;
            } 
            else if ( dia > fecha.consultaDia() ) {
               resultado = 1;
            } 
            else {		
               resultado = 0;
            }
         }
      }	

      return resultado;
   }


/** En el método compararFecha, hay 3 resultados posibles
* Que una fecha sea menor que otra, en cuyo caso el resultado
* es -1, que sean iguales, donde el resultado es 0, o que
* una fecha sea mayor que otra, y tiene como resultado 1.
*/


private boolean esBisiesto( int anio ) {
      return (( ((anio % 4) == 0) && ((anio % 100) != 0) ) 
             || ((anio % 400) == 0) );
   }


/** Los años divisibles por 4 son bisiestos,
* excluyendo los años que se dividen por 100,
* y los que se dividen por 400 también lo son.
*/


private int obtenerDiasMes( int mes ) {   
int diasMes = 0;      
switch( mes ) {  // Esta instrucción sirve para encontrar el valor de la variable "mes" en varios casos.
         case 1:
         case 3:
         case 5:
         case 7:
         case 8:
         case 10:
         case 12:		
            diasMes = 31;
                  
         case 4:
         case 6:
         case 9:
         case 11:		
            diasMes = 30;
                  
         case 2:		
            if (esBisiesto( anio ))
               diasMes = 29;
            else
               diasMes = 28;
                  		
               }
      
      return diasMes;
   	
}


private int obtenerDiasMes( int mes ) {
return obtenerDiasMes( obtenerMes(mes) );
}