Transformar a Data em um inteiro

ja procurei um monte mesmo no google quem ai pode me ajudar?

tenho um classe Data blz…

e uma funcionario nela tenho o atributo nascimento onde vai a data de nascimento dele e esse atributo e do tipo Data…

como faço pra transformar ele em um inteiro?

Quando você diz inteiro, quer dizer o que ? Milisegundos, segundos ou o que ? Ou simplesmente de 23/05 gerar um número 2305 ?

aham cara isso mesmo…

public void teste(){
Data d = new Data();
SimpleDateFormat nascimento = new SimpleDateFormat(“ddmmyyyy”);
int a = Integer.parseInt(nascimento.format(nascimento));
System.out.println(nascimento);

o metodo ta assim mas ai da erro quando eu tento compilar

o erro é esse
java.lang.IllegalArgumentException: Cannot format given Object as a Date
at java.text.DateFormat.format(DateFormat.java:279)

cara tem um erro muito bobo no seu codigo, você nao tah passando pro dateformat o date, e sim o proprio dateformat

como o metodo espera um objeto date

java.lang.IllegalArgumentException: Cannot format given Object as a Date

cara tem como me mostrar onde esta o erro e como fica?

que ja to a um tempao em cima disso?

e obrigado pela atenção ai viu.

troca isso

public void teste(){
Data d = new Data();
SimpleDateFormat nascimento = new SimpleDateFormat(“ddmmyyyy”);
int a = Integer.parseInt(nascimento.format(nascimento));
System.out.println(nascimento);

public void teste(){
Data d = new Data();
DateFormat nascimento = new SimpleDateFormat(“ddmmyyyy”);
int a = Integer.parseInt(nascimento.format(d));
System.out.println("" + a);

e o erro não dá qdo vc tenta compilar, dá qdo vc tenta executar !

aham cara e quando vou executar troquei e aconteceu o mesmo erro?

e agora?

Não cara, o erro pelo menos tem que mudar, ou dar certo.

compila isso ae de novo, dah um clean

como vc escreveu ali ele nao conhece a clase DateFormat e nao compila se colocar o Simple na frente da esse erro.

java.lang.IllegalArgumentException: Cannot format given Object as a Date
at java.text.DateFormat.format(DateFormat.java:279)
at java.text.Format.format(Format.java:133)
at Funcionario.teste(Funcionario.java:67)

mas velho eu quero transformar em um inteiro o atributo nascimento…

CARA,

agora que eu vi a merda

Que DatA é essa aí, que tipo de objeto é esse ?

Tava Achando quer era um DatE.

o format vai te retornar uma string nor formato inicializado, mas ele espera receber um java.util.DatE.[b]

sera que com um throws eu resolvo isso?

tipo eu tenho uma classe que gera a data padrao e talz…

tem alguma ideia?

quer que eu poste a classe data?

putis cara, você viajou nessa mesmo, procura olhar na documentacao o que cada método faz, não viaja com throws aí não por favor

Você tá utilizando o método de maneira inadequada, o correto é estourar a excption mesmo.

Posta sua classe Data aí pra gente ver q q faz, c tá viajando muito muito mesmo

import java.util.GregorianCalendar;
public class Data{
private int dia;
private int mes;
private int ano;

// constrói o objeto Data com os valores recebidos via parâmetros
public Data(int d, int m, int a){
setDia(d);
setMes(m);
setAno(a);

}

//e bissexto
public static boolean bissexto(int intAno)
{
if ((intAno % 4 == 0 && intAno % 100 != 0) || (intAno % 400 == 0))
return true;
else
return false;
}

//metodos boolean
public boolean setDia(int d){
if (d > 0 )
{dia = d;
return true;}
else{dia = 1;
return false;}
}

public boolean setMes(int m){
    if (m < 12 )
{mes = m;
    return true;}
else{mes = 1;
    return false;}
}

public boolean setAno(int a){
    if (a > 1920 )
{ano = a;
    return true;}
else{ano = 2008;
    return false;}
}

// constrói o objeto Data com a data atual
public Data(){
    GregorianCalendar c = new GregorianCalendar();
    dia = c.get(GregorianCalendar.DAY_OF_MONTH);
    mes = c.get(GregorianCalendar.MONTH)+1;
    ano = c.get(GregorianCalendar.YEAR);

}
public int getDataPadrao(){
return dia + mes + ano;
}
public int getDataInvertida(){
return ano * 10000 + mes * 100 + dia;
}

public void leDataInvertida(){
    Teclado t = new Teclado();
    int data = t.leInt("Informe a data no formato inteiro AAAAMMDD: ");
    setAno(data / 10000);
    setMes(data % 10000 / 100);
    setDia(data % 100);


}

}

velho so que a classe data ja peguei pronta e nao posso mudar ela entendeu?

ai sei la to perdidao.

Cara, vc já ta trabalhando com Calendar, entao basta dar o get do que vc quer:

[code] public static void main(String[] args) {

	Calendar calendar=Calendar.getInstance();
	calendar.setTime(new Date());
	for(int i=0;i<100;++i){
		System.out.println(calendar.get(Calendar.DAY_OF_MONTH)+"/"+
				calendar.get(Calendar.MONTH)+"/"+
				calendar.get(Calendar.YEAR));
		calendar.add(Calendar.DAY_OF_MONTH, 1);
		
	}

}

[/code]

repare nos métodos get do calendar (que se não me engano é superclasse de gregorianCalendar). Usando isso vc nem precisaria ficar fazendo código na mão para saber se o ano é bissexto, entre outras coisas.

Espero ter ajudado.

[code]import java.util.Calendar;
import java.text.SimpleDateFormat;

public class testeData {

public static void main(String arg[]) {
	Calendar nascimento = Calendar.getInstance();
	SimpleDateFormat formato = new SimpleDateFormat("ddMMyyyy");
	
	System.out.print(formato.format(nascimento.getTime()));    	
}

}[/code]

Abraço!

Duplicou!