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?
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!