es para mostrar como podemos crear objetos de tipo fecha y sus atributos.
un algoritmo que por si mismo no hace nada pero si implementas otro algoritmo en otra clase que invoque a esta y le llame sus metodos entonces crea fechas.
package ejerciciofechas;
public class Fecha {
public int dia,mes,año;
public Fecha(int d, int m, int a)
{
this.dia=d;
this.mes=m;
this.año=a;
}
//fin del primer constructor y comienzo del nuevo
public Fecha()
{
this.dia=13;
this.mes= 8;
this.año=2012;
}
//fin de los constructores
public int diferencia(Fecha f2)
{
int resultado;
resultado = (this.dia- f2.dia)+ (this.mes- f2.mes)*30+(this.año-f2.año)*365;
return resultado;
}
public int getDias()
{
return (this.dia);
}
//fin metodo
public String getNombreMes()
{
switch (this.mes)
{
case 1:
return("Enero");
case 2:
return("Febrero");
case 3:
return"Marzo";
case 4:
return("Abril");
case 5:
return"Mayo";
case 6:
return("Junio");
case 7:
return"Julio";
case 8:
return("Agosto");
case 9:
return"Sptiembre";
case 10:
return("Octubre");
case 11:
return("Noviembre");
case 12:
return("Diciembre");
default:
return("no existe");
}
}
//fin del metodo
public int getAño()
{
return(this.año);
}
//fin del metodo
public void sumarDias(int x)
{
while (x>30&&x>0)
{
this.mes+=1;
x=x-30;
if (this.mes>12)
{
this.año+=1;
this.mes=1;
}
}
//este es por si es negativo y un numero grande
while (x<-30&&x<0)
{
this.mes-=1;
x=x+30;
if (this.mes<1)
{
this.año-=1;
this.mes=12;
}
} //controla que este dentro de un rango de 30
if (x<30&&x>0)
{
this.dia += x;
if(this.dia>30)
{
this.mes+=1;
this.dia -=30;
if (this.mes>12)
{
this.año+=1;
this.mes -=12;
}
}
}
//estos dos if me controlan que no halla problemas con los multiplos de 30
if (x==30)
{
this.mes+=1;
if (this.mes>12)
{
año+=1;
}
}
if (x==-30)
{
this.mes-=1;
if (this.mes<1)
{
año-=1;
}
}
}
//fin del metodo
public void cambiarMes( int x)
{
if (this.mes<12&&this.mes>0)
{
this.mes=x;
}
else
{
System.out.println("no es posible esto no existe tal mes");
}
}
//fin del metodo
public boolean bisiesto()
{
boolean sw;
sw=false;
if (this.mes%4==0)
{
if (this.mes %100==0)
{
if(this.mes%400==0)
{
sw= false;
}
else
{
sw= true;
}
}
}
else
{
sw=false;
}
return sw;
}
//fin del metodo
public int[] getFecha()
{
int[] arreglo = new int[3];
arreglo[0]=this.dia;
arreglo[1]=this.mes;
arreglo[2]=this.año;
return arreglo;
}
public Fecha mañana()
{
Fecha nueva= new Fecha();
nueva.sumarDias(1);
return nueva;
}
public Fecha Ayer()
{
Fecha nueva= new Fecha();
nueva.sumarDias(-1);
return nueva;
}
public Fecha nuevaFecha(int x)
{
Fecha nueva= new Fecha();
nueva.sumarDias(x);
return nueva;
}
}