Você está na página 1de 4

public class DataSimples

{
/*
defini��o dos atributos da classe.
Para evitar acesso indevido ser�o de acesso private.
*/
private int dia;
private int mes;
private int ano;
/**
* @author Anderson Parreira
* @date 01/03/2008
*
*/
public DataSimples()
{
ano = 1;
mes = 1;
dia = 1;
}
/**
* @author Anderson Parreira
* @date 01/03/2008
*
*/
public DataSimples(int umDia, int umMes, int umAno)
{
setAno(umAno);
setMes(umMes);
setDia(umDia);
}
/**
* @author Anderson Parreira
* @date 01/03/2008
*
*/
public int getDia()
{
return dia;
}
/**
* @author Anderson Parreira
* @date 01/03/2008
*
*/
public void setDia(int umDia)
{
if (checkDia(umDia)) {
dia = umDia;
}
else {
dia = 0;
}
}
/**
* @author Anderson Parreira
* @date 01/03/2008
*
*/
public int getMes()
{
return mes;
}
/**
* @author Anderson Parreira
* @date 01/03/2008
*
*/
public void setMes(int umMes)
{
if (checkMes(umMes)) {
mes = umMes;
}
else {
mes = 0;
}
}
/**
* @author Anderson Parreira
* @date 01/03/2008
*
*/
public int getAno()
{
return ano;
}
/**
* @author Anderson Parreira
* @date 01/03/2008
*
*/
public void setAno(int umAno)
{
ano = umAno;
}

/**
* @author Anderson Parreira
* @date 01/03/2008
*
*/
public void inicializaData(int umDia, int umMes, int umAno)
{
setAno(umAno);
setMes(umMes);
setDia(umDia);
}
/**
* @author Anderson Parreira
* @date 01/03/2008
*
*/
private boolean checkMes(int umMes) {
return ((umMes >= 1) && (umMes <= 12));
}
/**
* @author Anderson Parreira
* @date 01/03/2008
*
*/
private boolean checkDia(int umDia)
{
boolean valida = true; // variavel com a valida��o do dia

switch (mes) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if (umDia < 1 || umDia > 31) {
valida = false;
}
break;
case 4:
case 6:
case 9:
case 11:
valida = ((umDia < 1) || (umDia > 30));
break;
case 2:
if (umDia == 29) {
if (!((ano % 400 == 0)
|| ((ano % 4) == 0
&& ((ano % 100) != 0)))) {
valida = false;
}
}
else {
valida = ((umDia > 28 || umDia < 1));
}
break;
default :
valida = false;
}
return valida;
}
/**
* @author Anderson Parreira
* @date 01/03/2008
*
*/
public void imprimeData()
{
System.out.println(getDia() + "/" + getMes() + "/" + getAno());
}

/**
* @author Anderson Parreira
* @date 01/03/2008
*
*/
public String toString()
{
return String.format("%d/%d/%d", getDia(), getMes(), getAno());
}
}