Trabalhando com data/horário

Olá pessoal.

Estou com uma dúvida na manipulação de data e horário em Java. Estou trabalhando numa agenda eletrônica, que vai guardar, entre outros dados, a data de nascimento da pessoa. Dei uma lida na documentação do Date, Calendar e GregorianCalendar, mas fiquei na dúvida em como usá-los.
No caso, eu criaria um novo GregorianCalendar da seguinte forma:

GregorianCalendar data = new GregorianCalendar(2006, 6, 15);

correto?

Pois então, eu precisaria passar esta data no construtor da classe Pessoa, criando um novo objeto Pessoa contendo o objeto “data” criado. A classe Pessoa possui um método toString que exibe todos os dados. Para colocar a data num formato correto para exibição, eu preciso fazer o seguinte:

SimpleDateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy"); String dataFormatada = formatoData.parse(data.getTime()); //aqui retornaria "15/06/2006"?

está certo fazer dessa forma?

Também preciso exibir os dados dos objetos Pessoa que possuem determinado mês atribuído na data. Que método uso para pegar um mês qualquer e comparar com o mês contido dentro do “data”?

Agradeceria muito se pudessem ajudar, ainda mais num feriadão com copa do mundo. :wink:

Vc poderia fazer assim:


dataEntrada = new Date();
calendar.setTime(dataEntrada);
sec = calendar.get(Calendar.SECOND);//retorna o segundo
min = calendar.get(Calendar.MINUTE);//retorna minuto
hou = calendar.get(Calendar.HOUR_OF_DAY);//retorna a hora 
mon = calendar.get(Calendar.MONTH);//retorna o mes
day = calendar.get(Calendar.DAY_OF_WEEK);//retorna o dia da semana
dom = calendar.get(Calendar.DAY_OF_MONTH);//retorna dia do mes
yea = calendar.get(Calendar.YEAR);//retorna o mes

Com esse métodos da classe calendar vc pode comparar o mes de outra data …
qualquer duvida manda ai , acho que cou passar o feriado programando

:slight_smile: ,trabalho de pós …

Opa, muito obrigado, Raphael. :slight_smile:

Agora estou com outra dúvida:
Estou tentando fazer o usuário digitar tudo numa string só (“15062006”, por exemplo), pra dividir essa String e colocar dentro Calendar. Fiz um exemplo para testar, mas não consigo compilar: dá “cannot find symbol” na linha 8.

[quote]
TestaData.java:8: cannot find symbol
symbol : class SimpleDateFormat
location: class TestaData
SimpleDateFormat formatoData = new SimpleDateFormat(“dd/MM/yyyy”
);
^[/quote]

[code]
import java.util.*;

public class TestaData{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
System.out.println(“Digite a data (ddMMyyyy):”);
String dataDigitada = sc.nextLine();
SimpleDateFormat formatoData = new SimpleDateFormat(“dd/MM/yyyy”);
Calendar calendar = calendar.setTime(formatoData.parse(dataDigitada));
int dia = calendar.get(Calendar.DAY_OF_WEEK);
int mes = calendar.get(Calendar.MONTH);
int ano = calendar.get(Calendar.YEAR);
System.out.println(dia+"/"+mes+"/"+ano);
}
}[/code]

No exemplo em que me baseei, do kickjava.com, é feito assim:

SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy"); java.util.Date aDate = sdf.format(sdf.parse("07/08/2003"));

O que está errado naquela linha? Fiz o mesmo que indica na documentação, mas não funcionou. :frowning:

PS: Também vou ter que passar o feriadão inteiro programando, fazendo esse trabalho final de algoritmos e programação I… heheh

Que estranho , aquele fecha paranteses esta na linha que fecha o SimpleDateFormat ?

Olá,
falta apenas o import de
java.text.SimpleDateFormat;

[]´s
Rodrigo