Boa noite pessoa estou com uma duvida tenho um exercicio para faculdade onde estou utilizando a classe date mas em varios metodos da variavel date parece ser obsoleto por isso gostaria de tentar passar para calendar o metodo e o de baixo.
public void setDtNascimento(Date dtNascimento) throws ValidarExecption {
int dia,mes,ano,diae,mese,anoe;
diae = dtNascimento.getDate();
mese = dtNascimento.getMonth();
anoe = dtNascimento.getYear();
Date data = new Date();
dia = data.getDate();
mes = data.getMonth();
ano = data.getYear();
if(anoe > ano)
{ throw new ValidarExecption("Digite uma data válida!");}
else if((mese > mes) && (anoe == ano))
{ throw new ValidarExecption("Digite uma data válida!");}
else if ((diae > dia) && (mese == mes) && (anoe == ano))
{ throw new ValidarExecption("Digite uma data válida!");}
this.dtNascimento = dtNascimento;
}
eu consigo passar ele para a classe calendar? como?
public void setDtNascimento(Date dtNascimento) throws ValidarExecption {
int dia,mes,ano,diae,mese,anoe;
diae = dtNascimento.getDate();
mese = dtNascimento.getMonth();
anoe = dtNascimento.getYear();
Date data = new Date();
dia = data.getDate();
mes = data.getMonth();
ano = data.getYear();
if(anoe > ano)
{ throw new ValidarExecption("Digite uma data válida!");}
else if((mese > mes) && (anoe == ano))
{ throw new ValidarExecption("Digite uma data válida!");}
else if ((diae > dia) && (mese == mes) && (anoe == ano))
{ throw new ValidarExecption("Digite uma data válida!");}
this.dtNascimento = dtNascimento;
}
quando for postar codigo, poste dentro das tags code, fica mais facil de ser visualizado.
vc pode criar um Calendar assim:
Date data = new Date();
Calendar c = Calendar.getInstance();
Locale pt = new Locale("pt", "br"); // se vc quiser um Calendar com um tipo de data especifico, vc pode criar um Locale, nesse caso o Locale usa o português do Brasil
Calendar d = Calendar.getInstance(pt); // cria o calendario assim
c.setTime(data); // aqui vc atribui a data ao Calendar, e a partir daqui vc pode manipular ele
c.add(Calendar.MONTH, 3); // adiciona 3 meses na data atual
c.add(Calendar.YEAR, 2); // adiciona 2 anos na data atual
c.add(Calendar.HOUR, 4); // adiciona 4 horas
c.getTime() // retorna a data
Date data = new Date(); // aqui vc pega a Data atual,
System.out.println(data); // se vc imprimir isso, vai receber alguma coisa parecida com isso Fri May 21 21:23:44 BRT 2010
caso vc queira formatar essa data vc pode fazer isso
Date data = new Date();
DateFormat df = DateFormat.getInstance(); // existem outras formas para formatar a data, vc pode formatar ela para um local especifico
Locale pt = new Locale("pt", "br");
DateFormat df_pt_full = DateFormat.getInstance(DateFormat.FULL, pt);
DateFormat df_pt_short = DateFormat.getInstance(DateFormat.SHORT, pt);
DateFormat df_pt_medium = DateFormat.getInstance(DateFormat.MEDIUM, pt);
System.out.println(df_pt_full.format(data); // se imprimir vai receber uma data assim: Sexta-feira, 21 de Maio de 2010
System.out.println(df_pt_short.format(data); // se imprimir vai receber uma data assim: 21/05/10
System.out.println(df_pt_medium.format(data); // se imprimir vai receber uma data assim: 21/05/10
sim, para vc usar a classe Calendar, vc tem que criar um Date, e depois atribuir esse Date para uma Calendar
Date data_atual = new Date();
Calendar c = Calendar.getInstance();
c.setTime(data_atual); // aqui vc passa a data_atual para o Calendar, eai vc vai poder utilizar os metodos da classe Calendar.
System.out.println(c.getTime()); // imprimi a data atual
System.out.println(c.add(Calendar.YEAR, 2)); // adiciona 2 anos a data atual
[quote=leandrognaf]Boa noite pessoa estou com uma duvida tenho um exercicio para faculdade onde estou utilizando a classe date mas em varios metodos da variavel date parece ser obsoleto por isso gostaria de tentar passar para calendar o metodo e o de baixo.
public void setDtNascimento(Date dtNascimento) throws ValidarExecption {
int dia,mes,ano,diae,mese,anoe;
diae = dtNascimento.getDate();
mese = dtNascimento.getMonth();
anoe = dtNascimento.getYear();
Date data = new Date();
dia = data.getDate();
mes = data.getMonth();
ano = data.getYear();
if(anoe > ano)
{ throw new ValidarExecption("Digite uma data válida!");}
else if((mese > mes) && (anoe == ano))
{ throw new ValidarExecption("Digite uma data válida!");}
else if ((diae > dia) && (mese == mes) && (anoe == ano))
{ throw new ValidarExecption("Digite uma data válida!");}
this.dtNascimento = dtNascimento;
}
eu consigo passar ele para a classe calendar? como?
grato pela atenção[/quote]
Se vc quer apenas comparar as duas datas e exibir uma data formatada acho que o mais simples é o SimpleDateFormat. Se bem me lembro fica uma coisa assim:
public void setDtNascimento(Date dtNascimento) throws ValidarExecption {
Date hoje = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
if(dtNascimento.after(hoje))
throw new ValidarExecption("Digite uma data válida!");
else
this.dtNascimento = dtNascimento;
System.out.print(sdf.format(dtNascimento);
}
Acho que isso faz o que vc quer e exibe tb a data formatada.
Boa tarde a todos, tembém faço um trabalho da faculdade em que necessitarei de usar Date. Embora busque, pesquise e (de certa forma) entenda como funciona, não consigo fazê-la funcionar.
Já tentei usar SimpleDateFormat e outros recursos mas não alcanço meu objetivo. Eu quero validar uma data de nascimento (que seja declarada) de um usuário num programa, e como se trata de uma data tenho de validar dia com relação ao mês que pertence e ao ano (se é bissexto ou não). Alguém pode me ajudar a pensar numa forma de resolver este problema da maneira mais simples possível?