Pessoal no meu código ele não aparece nenhum erro mas ele aparece no getDate, getMonth,getYear riscado e com uma lampadinha aparelinha do lado… esse é só um pedaço do código alguem poderia me ajudar??? qualquer coisa posto o código completo…
public Data() {
java.util.Date hoje = new java.util.Date();
dia = hoje.getDate();
mes = hoje.getMonth() + 1; // retorna um valor de mes entre 0..11
ano = hoje.getYear() + 1900;
}
Este riscadinho que te refere, é porque estes métodos são deprecated.
Ou seja, deixarão de ser utilizados em versões superiores à que estais utilizando.
E
entanglement
A tal “lampadinha amarelinha” (o “m” é bem longe do “p” no teclado, hein!) indica que você está fazendo alguma coisa questionável. Por exemplo, no seu caso você está usando 3 métodos “obsoletos” (ou “deprecated” em inglês) da classe java.util.Date, que são getDate, getMonth e getYear.
Se for lidar com dias, meses e anos, converta o seu java.util.Date para java.util.Calendar, que é a classe adequada para trabalhar com tais coisas.
V
VictorFarion
publicclassData{// Corpo da classe base, ou classe pai, ou superclasse "Data"// atributos privados (private) da classe "Data", portanto, não poderão ser// referenciados nas subclasses e nas instâncias ou objetos.privateintdia,mes,ano;// método construtorpublicData(intd,intm,inta){dia=d;mes=m;ano=a;}// sobrepondo (polimorfismo de sobrecarga) o método construtor// assinaturas diferentes (quantidade de parâmetros)publicData(){java.util.Datehoje=newjava.util.Date();dia=hoje.getDate();mes=hoje.getMonth()+1;// retorna um valor de mes entre 0..11ano=hoje.getYear()+1900;}// métodos implementados para retornar o valor dos atributos privadospublicintgetDia(){return(dia);}publicintgetMes(){return(mes);}publicintgetAno(){return(ano);}// visibilidade "protected" = classe e subclassesprotectedbooleananoBissexto(inta){if((a%4)!=0)return(false);elseif((a%100)!=0)return(true);elseif((a%400)!=0)return(false);elsereturn(true);}protectedintdiasNoMes(intm){switch(m){case1:case3:case5:case7:case8:case10:case12:return(31);case4:case6:case9:case11:return(30);default:if(anoBissexto(ano)==true)return(29);elsereturn(28);}}// visibilidade "public" = classe, subclasse e instância (ou objeto)publicvoidincrementa(intn){for(inti=1;i<=n;i++)if(dia<diasNoMes(mes))dia++;elseif(mes<12){// se for o último dia do mês,mes++;// então, primeiro dia do mês seguinte.dia=1;}else{// último dia do ano, portanto,dia=1;// atribui o primeiro diames=1;// do ano seguinteano++;}}publicvoiddecrementa(intn){for(inti=1;i<=n;i++)if(dia>1)dia--;elseif(mes>1){// se for o primeiro dia do mês,mes--;// então, último dia do mês anterior.dia=diasNoMes(mes);}else{// primeiro dia do ano, portanto,dia=31;// atribui o último dia do ano anterior.mes=12;ano--;}}publicStringimprimeData(){return(dia+"/"+mes+"/"+ano);}}// Fim do corpo da superclasse "Data"// implementando o mecanismo de herança = a nova classe "NovaData"// estende (extends) a classe base "Data"classNovaDataextendsData{// Corpo da classe derivada, ou da classe filha, ou subclasse "NovaData".// visibilidade "private" = classeprivateinttotalDeDias(){intttAnos=(getAno()-1)*365;for(inti=1;i<=(getAno()-1);i++)// Número de anos bissextos até a data.if(anoBissexto(i)==true)ttAnos++;intttMeses=0;for(inti=1;i<=(getMes()-1);i++)ttMeses+=diasNoMes(i);return(ttAnos+ttMeses+getDia());}publicStringdiaDaSemana(){StringnomeDiaDaSemana[]={"Domingo","Segunda-Feira","Terça-Feira","Quarta-Feira","Quinta-Feira","Sexta-Feira","Sábado"};return(nomeDiaDaSemana[totalDeDias()%7]);}}// Fim do corpo da subclasse "NovaData".
edmarr
Depende, Criador , pois varia muito do tipo de como ele compila , e talz , por isto perdi o código completo .
V
VictorFarion
certo eu mudei lá… mas msmo assim da erro…
public Data() {
java.util.Calendar hoje = new java.util.Calendar();
dia = hoje.getDate();
mes = hoje.getMonth() + 1; // retorna um valor de mes entre 0..11
ano = hoje.getYear() + 1900;
}
edmarr
Utilize @SuppressWarnings(“deprecation”) para inibir as mensagens ,
Portem o que ele quiz dizer que sim , realmente obsoleto , porem existem outras maneiras de pegar as datas exemplo
usando
SimpleDateFormat .
V
VictorFarion
É assim que eu tenho que usar isso??
public Data() {
java.util.SimpleDateFormat hoje = new java.util.SimpleDateFormat ();
dia = hoje.getDate();
mes = hoje.getMonth() + 1; // retorna um valor de mes entre 0..11
ano = hoje.getYear() + 1900;
}
renanreismartins
VictorFarion fica a dica, sempre que for trabalhar com data ou hora, utilize a lib Joda-time.
abrassssss
edmarr
Creio que vc esteja confundindo as coisas ,
De uma olhada no link