[ Foro de Java ]
import java.util.Calendar;
import java.util.GregorianCalendar;
public class Estudiante {
Calendar fechaNac=new GregorianCalendar(1995,05,05);
Calendar fechaHoy=Calendar.getInstance();
int anoNac=fechaNac.get(Calendar.YEAR);
int anoHoy=fechaHoy.get(Calendar.YEAR);
private int edad;
public int getEdad() {
return edad;
}
public void setEdad(int edad) {
this.edad = edad;
}
public class Principal {
public static void main(String[] args) {
Estudiante objeto1 = new Estudiante ();
objeto1.setEdad();
System.out.println("Edad: "+objeto1.getEdad());
}
}
Hola, buenas noches (aca lo es por lo menos)...
Yo crearia 2 clases Abstractas con metodos staticos que hagan todo el trabajo:
1-era CLASE
package fechas; // lo podes cambiar, pero de esta forma el nombre del paquete indica de que trata la //clase, la clase se llama Diferencia y el metodo estatico es fecha... para usarlo te quedaria:
// Diferencia.fecha(aqui pones el objeto de tipo Calendar) -> Este metodo te saca la diferencia en años
// entre una fecha x y la fecha Actual (el metodo lo saca solo)
//borra el paquete si lo vas a poner en otro lado, porque sino te da error.
// el segundo metodo Diferencia.fechas(fechavieja, fechanueva) --> este metodo te permite sacar
// la diferencia en años entre 2 fechas (no necesariametne la actual)
import java.util.Calendar;
public abstract class Diferencia
{
public static int fecha(Calendar fecha)
{
Calendar fechaActual = Calendar.getInstance();
int resultado = fechaActual.get(Calendar.YEAR) - fecha.get(Calendar.YEAR);
if(fechaActual.get(Calendar.MONTH) < fecha.get(Calendar.MONTH))
{
resultado--;
}
else
{
if (fechaActual.get(Calendar.MONTH) == fecha.get(Calendar.MONTH))
{
if(fechaActual.get(Calendar.DATE) < fecha.get(Calendar.DATE))
{
resultado--;
}
}
}
return resultado;
}
public static int fechas(Calendar fechaAntigua, Calendar fechaReciente)
{
int resultado = fechaReciente.get(Calendar.YEAR) - fechaAntigua.get(Calendar.YEAR);
if(fechaReciente.get(Calendar.MONTH) < fechaAntigua.get(Calendar.MONTH))
{
resultado--;
}
else
{
if (fechaReciente.get(Calendar.MONTH) == fechaAntigua.get(Calendar.MONTH))
{
if(fechaReciente.get(Calendar.DATE) < fechaAntigua.get(Calendar.DATE))
{
resultado--;
}
}
}
return resultado;
}
}
--------------------------------------------------------------------------------------------------------------------------------------------
Clase 2
package fechas; // tambien la cree dentro del paquete fechas. Esta clase abstracta tiene un solo metodo // estatico donde te pide un objeto de tipo Calendar (osea una fecha) y te devuelve un String con el
// formato: 00/00/0000... Repito, te devuelve un String...
import java.util.Calendar;
public abstract class Obtener
{
public static String fecha(Calendar fecha)
{
return fecha.get(Calendar.DATE)+"/"+(fecha.get(Calendar.MONTH)+1)+"/"+fecha.get(Calendar.YEAR);
}
}
Espero que te sirva y avisame si hay algo que no entendes. Slds y exitos!!!
Me falto decirte... en los metodos get solamente tenes que crear (por ejemplo)
Calendar nacimiento = Calendar.getInstance(); // y despues tenes que inyectarle los datos, dia, mes y año
nacimiento.et(anio, (mes-1), dia); // acordate que este metodo pide int osea, int dia, int mes y int anio
// y que el MES arranca en 0, osea 0 = Enero, 1= Febrero... 11=Diciembre... por lo que si el usuario
// ingresa los numeros 22 7 1992--> para que te lo tome bien le tenes que restar 1 porque 7 es Agosto
// y 6 es Julio, cuando ingreses el dato restale -1
public int getEdad()
{
return Diferencia.fecha(nacimiento); // suponiendo que hayas almacenada la fecha de nacimiento en una
// variable Callendar llamada nacimiento.
}
public String getNacimiento()
{
return Obtener.fecha(nacimiento);// el metodo es estatico, asi que no necesitas crear ningun objeto para //usarlo, ademas que no vas a poder crearlo porque la clase es abstracta.
}
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)