GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Exibir data (dd/mm/aaaa)


#1

Criei um metodo displayDate para exibir o dia, mes e ano separados por barras normais:
public void displayDate( int dtDate )
{
dtDate = ((datDia)/(datMes)/(datAno));
}

ele compila, porém na hora de executar aparece o seguinte erro:

aonde está o erro?
e como faço para solicionar?[/quote]


#2

Pra te falar a verdade, não entendi absolutamente nada do que esse metodo seu está fazendo... qual foi sua intenção colocando essas barras entre as variaveis? E porque atribuiu o "resultado" à variavel dtDate sendo que você não faz mais nada com ela abaixo? E afinal, o que significa a variavel dtDate?

Se o que você quer é mostrar a data como uma String formatada, dê uma olhada na classe SimpleDateFormat e use a classe Date para representar datas.

:wink:


#3

kra não recomendo o uso da classe Date vc pode reparar que tem muito metodo deprecado(deprecated) na documentação da classe use a classe Calendar e como no post anterior não entendi muito o objetivo disso. Uma metodo q recebe um valor inteiro e atribui a mesma variavel q recebeu???? Explique-se melhor.

Esqueleto


#4

Vou explicar melhor:
preciso criar uma classe Date que tenha 3 variáveis de instancia:
mês, dia e ano (todas tipo int), essa classe deve ter um construtor que inicializa as 3 variaveis de instancia.
Fazer um metodo set e um get para cada variavel de instancia.
Fazer um metodo displayDate (citado abaixo) que exiba o mes, dia e ano separados por barras normais (/); e por fim uma classe DateTest para testar a classe Date.

Vou colar as duas classes:


#5

Não seria isso?

public String displayDate(){
   return datDia+"/"+datMes+"/"+datAno;
}

Na realidade a classe Date em si não está marcada como deprecated, e ainda é a classe recomendada para representação de datas, os métodos deprecated da classe são devidos as duas funcionalidades que ela tinha inicialmente, de manipular os campos da data individualmente e de formatar a data, essa duas funcionalidades foram transferidas para a classe Calendar e DateFormat, mas somente essas duas funcionalidades, não a de representar a data, o que não é a função de Calendar.

:wink:


#6

Não seria isto aqui:

System.out.printf( "\nA data correta e: %d/%d/%d\n", dtDia,dtMes,dtAno);

Qualquer coisa confere aqui.

T+


#7

apareceu o seguinte erro:

seria o erro causado pela declaração int das variáveis datDia, datMes e datAno?


#8

alguem sabe???


#9

vc fez alguma das alterações sugeridas pelo pessoal???

posta seu codigo atual....

pq no anterior, o seu metodo displayDate() noa vai funcionar nunca...

soh um toque, o java ja possui a classe Date, mude o nome da sua classe....


#10

ai vai o código atual
class Date

class DateTest

é um exercicio de um livro, ele pede pra criar as classes..


#11

troque

 System.out.printf( "\nA data correta e: %s %s %s\n", date.displayDate() );

em Java2

System.out.println( "A data correta e: "+date.displayDate() );

eu aqui não tenho o Java5 pra poder testar o seu printf, mas o lance eh q vc esta tentando mostrar 3 String usando %s 3 vezes...porem o seu metodo displayDate() soh retorna 1 String....raciocinando dessa forma o q vc pode tentar tb eh:

 System.out.printf( "\nA data correta e: %s\n", date.displayDate() );

lembrando q isso eu nao consigo testar aqui, mas pelo seu erro, deve funcionar...


#12

funcionou, usei o último código.
obrigado!


#13