Formato de data

8 respostas
Onimatsu
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:
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;
	}
}
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?

8 Respostas

altitdb

Cara…

utiliza o SimpleDateFormat para formatar as datas…

é uma maravilha!!

xD~~

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

Onimatsu
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:
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);
	}
}
Anime

Oi,

O usuário vai digitar a data atual?

Onimatsu

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.

Anime

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);
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.

Anime

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.

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());
Anime

Talvez isso ajude:

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

Criado 25 de dezembro de 2010
Ultima resposta 26 de dez. de 2010
Respostas 8
Participantes 3