17/10/2010, 08:16
|
| | Fecha de Ingreso: noviembre-2009
Mensajes: 16
Antigüedad: 15 años 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) );
}
|