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.
publicvoidsetDtNascimento(DatedtNascimento)throwsValidarExecption{intdia,mes,ano,diae,mese,anoe;diae=dtNascimento.getDate();mese=dtNascimento.getMonth();anoe=dtNascimento.getYear();Datedata=newDate();dia=data.getDate();mes=data.getMonth();ano=data.getYear();if(anoe>ano){thrownewValidarExecption("Digite uma data válida!");}elseif((mese>mes)&&(anoe==ano)){thrownewValidarExecption("Digite uma data válida!");}elseif((diae>dia)&&(mese==mes)&&(anoe==ano)){thrownewValidarExecption("Digite uma data válida!");}this.dtNascimento=dtNascimento;}
eu consigo passar ele para a classe calendar? como?
publicvoidsetDtNascimento(DatedtNascimento)throwsValidarExecption{intdia,mes,ano,diae,mese,anoe;diae=dtNascimento.getDate();mese=dtNascimento.getMonth();anoe=dtNascimento.getYear();Datedata=newDate();dia=data.getDate();mes=data.getMonth();ano=data.getYear();if(anoe>ano){thrownewValidarExecption("Digite uma data válida!");}elseif((mese>mes)&&(anoe==ano)){thrownewValidarExecption("Digite uma data válida!");}elseif((diae>dia)&&(mese==mes)&&(anoe==ano)){thrownewValidarExecption("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:
Datedata=newDate();Calendarc=Calendar.getInstance();Localept=newLocale("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 BrasilCalendard=Calendar.getInstance(pt);// cria o calendario assimc.setTime(data);// aqui vc atribui a data ao Calendar, e a partir daqui vc pode manipular elec.add(Calendar.MONTH,3);// adiciona 3 meses na data atualc.add(Calendar.YEAR,2);// adiciona 2 anos na data atualc.add(Calendar.HOUR,4);// adiciona 4 horasc.getTime()// retorna a data
leandrognaf
como que eu faço para pegar a data atual?
caio_ferreira
Datedata=newDate();// 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
Datedata=newDate();DateFormatdf=DateFormat.getInstance();// existem outras formas para formatar a data, vc pode formatar ela para um local especificoLocalept=newLocale("pt","br");DateFormatdf_pt_full=DateFormat.getInstance(DateFormat.FULL,pt);DateFormatdf_pt_short=DateFormat.getInstance(DateFormat.SHORT,pt);DateFormatdf_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 2010System.out.println(df_pt_short.format(data);// se imprimir vai receber uma data assim: 21/05/10System.out.println(df_pt_medium.format(data);// se imprimir vai receber uma data assim: 21/05/10
leandrognaf
mas ai eu n vou estar usando a classe date?
caio_ferreira
sim, para vc usar a classe Calendar, vc tem que criar um Date, e depois atribuir esse Date para uma Calendar
Datedata_atual=newDate();Calendarc=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 atualSystem.out.println(c.add(Calendar.YEAR,2));// adiciona 2 anos a data atual
S
snoop
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();Datedata=newDate();dia=data.getDate();mes=data.getMonth();ano=data.getYear();if(anoe>ano){thrownewValidarExecption("Digite uma data válida!");}elseif((mese>mes)&&(anoe==ano)){thrownewValidarExecption("Digite uma data válida!");}elseif((diae>dia)&&(mese==mes)&&(anoe==ano)){thrownewValidarExecption("Digite uma data válida!");}this.dtNascimento=dtNascimento;
}
eu consigo passar ele para a classe calendar? como?
grato pela atenção
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:
publicvoidsetDtNascimento(DatedtNascimento)throwsValidarExecption{Datehoje=newDate();SimpleDateFormatsdf=newSimpleDateFormat("dd/MM/yyyy");if(dtNascimento.after(hoje))thrownewValidarExecption("Digite uma data válida!");elsethis.dtNascimento=dtNascimento;System.out.print(sdf.format(dtNascimento);}
Acho que isso faz o que vc quer e exibe tb a data formatada.
fishyhatguy
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?
Essa é só uma parte do trabalho ಠ_ಠ
leandrognaf
Fiz o que eu quero mas esta dando um alerta no netbeans (Acessando estatico fild ...) o que siguinifica? segue o codigo
publicvoidsetDataNascimento(CalendardataNascimento)throwsValidarExecption{intdiaPaciente,anoPaciente,diaValida,anoValida;Datehoje=newDate();CalendardataAtual=Calendar.getInstance();dataAtual.setTime(hoje);diaPaciente=dataNascimento.DAY_OF_YEAR;anoPaciente=dataNascimento.YEAR;diaValida=dataAtual.DAY_OF_YEAR;anoValida=dataAtual.YEAR;if(anoPaciente>anoValida){thrownewValidarExecption("Ano não e Valida");}elseif((diaPaciente>diaValida)&&(anoPaciente==anoValida)){thrownewValidarExecption("Dia não e valido");}}