Autor: Gabriel Pereira
Competencia: Gestión del Conocimiento.
Palabras Clave: Clases, Java, If,.
Palabras Clave: Clases, Java, If,.
Descripción: Crear la Clase Fecha para que lleve a cabo la comprobación de errores sobre los valores de inicialización de los atributos mes, día y año. También proporcione una función miembro unDiaMas que incremente el día en uno. El objeto Fecha siempre debe permanecer en un estado consistente.
Escriba un Programa Controlador que pruebe la función unDiaMas, unMesMas, unAñoMas. Una función para pasar a días una determinada fecha. Compara dos fechas y asegúrese
de probar los siguientes casos:
a) Incremento al siguiente mes.
b) Incremento al siguiente año.
c) compara dos fechas, cuantos días tiene una fecha
Código Fuente Clase Fecha:
public class Fecha
{
private int dia;
private int mes;
private int ana;
//Constructores
Fecha()
{
this.dia = 1; this.dia = 1; this.dia = 1900;
}
Fecha(int d, int m, int a)
{
if((d >=1 && d <= 30) && (m >=1 && m <= 12) && (a >=1900 && a <= 2050) )
{
this.dia = d; this.mes = m; this.ana = a;
}
else
{
this.dia = 1; this.mes = 1; this.ana = 1900;
}
}
//Metodos Instanciables
int getDia(){return dia;}
int getMes(){return mes;}
int getAna(){return ana;}
//Metodos Estaticos
static void setDia(Fecha f, int d)
{
if(d >=1 && d <= 30)
f.dia = d;
else System.out.println("Error de Dia");
}
static void setMes(Fecha f, int m)
{
if(m >=1 && m <= 12)
f.mes = m;
else System.out.println("Error de Mes");
}
static void setAna(Fecha f, int a)
{
if(a >=1900 && a <= 2050)
f.ana = a;
else System.out.println("Error de Año");
}
static void unDiaMas(Fecha f)
{
Fecha.setDia(f, f.getDia()+1);
}
static void unMesMas(Fecha f)
{
Fecha.setMes(f, f.getMes()+1);
}
static void unAnaMas(Fecha f)
{
Fecha.setAna(f, f.getAna()+1);
}
static int pasar_A_dias(Fecha f)
{
return (f.getDia() + f.getMes()*30 + f.getAna()*365);
}
static void compararFechas(Fecha f1, Fecha f2)
{
int a = Fecha.pasar_A_dias(f1); int b = Fecha.pasar_A_dias(f2);
if(a > b) System.out.println("La Fecha F1 es Mayor con " + (a-b) + " dias.");
else System.out.println("La Fecha F2 es Mayor con " + (b-a) + " dias.");
}
static void mostrarFecha(Fecha f)
{
System.out.println(f.getDia() + " / "+ f.getMes() +" / "+ f.getAna());
}
}//Fin clase Fecha
Codigo Fuente Clase Control:
public class Control
{
public static void main()
{
Fecha f1 = new Fecha(9,12,2011);
Fecha f2 = new Fecha(1,9,2010);
Fecha.mostrarFecha(f1);
Fecha.mostrarFecha(f2);
Fecha.unDiaMas(f2);
Fecha.unMesMas(f2);
Fecha.unAnaMas(f2);
Fecha.mostrarFecha(f2);
System.out.println("La fecha F1 tiene " + Fecha.pasar_A_dias(f1) + " dias.");
System.out.println("La fecha F2 tiene " + Fecha.pasar_A_dias(f2) + " dias.");
Fecha.compararFechas(f1, f2);
}//Fin Main
}//Fin Control
Captura de aplicación:
Resumen: Este ejercicio de aplicación reafirma los conocimientos en el uso de clases, como también el de constructores, accesadores y mutadores.
No hay comentarios:
Publicar un comentario