Boa Noite a todos,
Estou desenvolvendo um sistema de agenda para o meu tio. Para nao ter que reescrever codigo ja existente eu pesquisei um a forma de consiste Datas que e a que se encontra abaixo:
try
{
String data = dataeditor.getText();
GregorianCalendar gc = new GregorianCalendar();
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
format.setLenient(false);
gc.setLenient(false);
gc.setTime(format.parse(data));
}
catch(ParseException d)
{
JOptionPane.showMessageDialog(null, d);
JOptionPane.showMessageDialog(null, "Data inválida ou fora do formato dd/mm/yyyy");
dataeditor.requestFocus();
}
Funciona blz mas para nao ter que ficar repetindo esse codigo resolvi criar uma classe que extend GregorianCalendar e introduzi nela simpledateformat como atributo da classe.
public class Data extends GregorianCalendar{
private SimpleDateFormat format;
public Data(String datavalue)
throws ParseException
{
super();
format = new SimpleDateFormat("dd/mm/yyy");
format.setLenient(false);
setLenient(false);
setTime(format.parse(datavalue));
}
}
O primeiro codigo funciona blz, consiste a data e que e uma maravilha, mas, o segundo codigo aceita a data 31/04/2011 como se fosse válida, porque ? se os códigos fazem relativamente a mesma coisa ?