Clase Fecha en Java: atributos + interfaz

/*Se completa en Java una Clase con sus atributos y su interfaz:
constructores + métodos públicos */

package fecha;
import java.util.Scanner;

/*
* @author RLR
*/

public class Fecha
{
private int dia,mes,anio;

public Fecha()
{dia=1;mes=1;anio=2001;}

public Fecha(Fecha f)
{dia=f.dia;mes=f.mes;anio=f.anio;}

public Fecha(int d,int m,int a)
{
if(esCorrecta(d,m,a))
//System.out.println("CONSTRUCTOR WORKING!");
{dia=d;mes=m;anio=a;}
else
{dia=1;mes=1;anio=2001;}
}

/*
* @param args the command line arguments
*/
public static void main(String[] args)
{
// TODO code application logic here

int dia,mes,anio;
Scanner sc=new Scanner(System.in);

System.out.println("Fechas por defecto: ");
Fecha f = new Fecha();
f.mostrar();

Fecha f1 = new Fecha(f);
f1.mostrar();

System.out.println("Dame dia, mes y anio: ");
dia=sc.nextInt();
mes=sc.nextInt();
anio=sc.nextInt();

Fecha f2 = new Fecha(dia,mes,anio);
f2.mostrar();

if(f2.esCorrecta()) f2.mostrar();
if(f2.esBisiesto()) f2.mostrar();

System.out.println("Dia correspondientes de estas fechas: ");

System.out.println(f.diaAnio() + "-" + f1.diaAnio() + "-" + f2.diaAnio());

System.out.println("\n\nPulsa Tecla+Return para acabar.\n");
String FIN=sc.next();
}

private String toString1()
{
String x = dia + "/" + mes + "/" + anio;
return x;
}

public void mostrar()
{
System.out.println(toString1());
}

private boolean esCorrecta(int dia,int mes,int anio)
{
if(dia>ndias(mes,anio) || dia <1 || mes<1 || mes>12 || anio<1600)
  return false;
else
  return true;
}

private int ndias(int mes,int anio)
{
int dias=0;

switch(mes)
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
 dias=31;
 break;
case 4: case 6: case 9: case 11:
 dias=30;
 break;
case 2:
 if((anio%400==0) || (anio%4==0)&&(anio%100!=0))
  dias=29;
 else   
  dias=28;
}
return dias;
}

public boolean esCorrecta()
{
if(dia>ndias() || dia <1 || mes<1 || mes>12 || anio<1600)
 return false;
else
 return true;
}

public int ndias()
{
int dias=0;

switch(mes)
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
 dias=31;
 break;
case 4: case 6: case 9: case 11:
 dias=30;
 break;
case 2:
 if((anio%400==0) || (anio%4==0)&&(anio%100!=0))
  dias=29;
 else   
  dias=28;
}
return dias;
}

public boolean esBisiesto()
{
if((anio%400==0) || (anio%4==0)&&(anio%100!=0))
 return true;
else
 return false;
}

public int diaAnio()
{
int dias=0;

for(int i=1; i<mes; i++)
  dias += ndias(i,anio);
dias += dia;

return dias;
}

}
Esta entrada fue publicada en Ciencia y programación. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s