Formato de data

E aí amigos programadores.
Queria saber como garantir que datas como 31/2/2005 não sejam aceitas pela minha classe Data.
Minha classe ficou desse jeito:

[code]public class Data {
private int dia;
private int mes;
private int ano;
// Achei melhor não postar o construtor
public void incluiData(Data referencia, int dia, int mes, int ano) {
// Cria varíavel guardaData e atribui a referencia
Data guardaData = new Data();
guardaData = referencia;
// Atribui os valores a variável auxiliar guardaData diretamente aos atributos
guardaData.dia = dia;
guardaData.mes = mes;
guardaData.ano = ano;
}

public void mostraData() {
	System.out.println(this.dia + "," + this.mes + "," + this.ano);
}

public String toString() {
	return "Dia " + this.dia + " Mês " + this.mes + " Ano " + this.ano;
}

}[/code]1- Eu uso o metódo incluiData e na parte que eu indico o mês eu digito 02 só que nos metódos mostraData() e toString() ele mostra só 2 “um algarismo” como resolver isso para que mostre dois digitos, ou seja, 02?

Cara…

utiliza o SimpleDateFormat para formatar as datas…

é uma maravilha!!

xD~~

http://download.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

Antes não fazia nem idéia de como começar agora eu pesquisei um exemplo no fórum mas ainda estou com problemas no uso. O seguinte código não compila:

[code]import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Data {
private int dia;
private int mes;
private int ano;
public void mostraData() {
SimpleDateFormat formatador = new SimpleDateFormat (“dd,MM,yyyy”);
Date data = formatador.parse(this.dia + this.mes + this.ano);
String novoformato = formatador.format(data);
}
}[/code]

Oi,

O usuário vai digitar a data atual?

Sim com o “incluiData(Data referencia, int dia, int mes, int ano){” e o valor vai direto para os atributos por isso pensei que usá-los seria melhor alternativa.

Se a data for atual vc pode pegar direto do sistema,assim o usuário não precisa digitar…

Desculpe,vai precisar desse impot


 import java.util.Calendar.*;

    MaskFormatter DataFormato,formataprazo;
    Date data=new Date();

   GregorianCalendar thisday = new GregorianCalendar();
      Date d = thisday.getTime();
      DateFormat df = DateFormat.getDateInstance();
      String s = df.format(d);
      //System.out.println("Hoje é " + s);
      lb_datave.setText(s);

Oi Anime.
A sugestão é muito boa mas nesse código eu devo usar a data como: data de entrada do funcionário na firma ou data de saída do mesmo, ele vai ser responsável por auxiliar outras classes nesse sentido por isso pegar direto do sistema não seria apropriado.

[quote=Onimatsu]Oi Anime.
A sugestão é muito boa mas nesse código eu devo usar a data como: data de entrada do funcionário na firma ou data de saída do mesmo, ele vai ser responsável por auxiliar outras classes nesse sentido por isso pegar direto do sistema não seria apropriado.[/quote]

Se for para formatar pode ser assim…

Vai usar esse import…


import java.util.Calendar.*;

  Calendar data = Calendar.getInstance();   
  SimpleDateFormat format=new SimpleDateFormat("dd/MM/yyyy");
  String h=format.format(data.getTime());

Talvez isso ajude:

http://www.guj.com.br/java/2143-verifica-se-a-data-esta-correta-de-acordo-com-o-calendario