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:
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.
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
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.
PS: Também vou ter que passar o feriadão inteiro programando, fazendo esse trabalho final de algoritmos e programação I… heheh