Data

10 respostas
V

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; }

10 Respostas

edmarr

Posta o código completo por favor .

criador

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

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
public class Data { // 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.
	  private int dia, mes, ano;
	 
	// método construtor
	  public Data(int d, int m, int a) {
	    dia = d;
	    mes = m;
	    ano = a;
	  }
	 
	// sobrepondo (polimorfismo de sobrecarga) o método construtor
	// assinaturas diferentes (quantidade de parâmetros)
	  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;
	  }
	 
	// métodos implementados para retornar o valor dos atributos privados
	  public int getDia() {
	    return(dia);
	  }
	 
	  public int getMes() {
	    return(mes);
	  }
	 
	  public int getAno() {
	    return(ano);
	  }
	 
	// visibilidade "protected" = classe e subclasses
	  protected boolean anoBissexto(int a) {
	    if ((a % 4) != 0)
	       return(false);
	    else if ((a % 100) != 0)
	       return(true);
	    else if ((a % 400) != 0)
	       return(false);
	    else
	       return(true);
	  }
	 
	  protected int diasNoMes(int m) {
	    switch (m) {
	      case 1:
	      case 3:
	      case 5:
	      case 7:
	      case 8:
	      case 10:
	      case 12: return(31);
	 
	      case 4:
	      case 6:
	      case 9:
	      case 11: return(30);
	 
	      default: if (anoBissexto(ano) == true)
	                  return(29);
	               else return(28);
	    }
	  }
	 
	// visibilidade "public" = classe, subclasse e instância (ou objeto)
	  public void incrementa(int n) {
	    for (int i=1; i<=n; i++)
	      if (dia < diasNoMes(mes))
	         dia++;
	     else if (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 dia
	            mes = 1;  // do ano seguinte
	            ano++;
	          }
	  }
	 
	  public void decrementa(int n) {
	    for (int i=1; i<=n; i++)
	      if (dia > 1)
	         dia--;
	      else if (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--;
	         }
	  }
	 
	  public String imprimeData() {
	    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"
	class NovaData extends Data
	{ // Corpo da classe derivada, ou da classe filha, ou subclasse "NovaData".
	 
	// visibilidade "private" = classe
	  private int totalDeDias() {
	    int ttAnos = (getAno() - 1) * 365;
	    for (int i=1; i<=(getAno()-1); i++) // Número de anos bissextos até a data.
	      if (anoBissexto(i) == true)
	          ttAnos++;
	 
	    int ttMeses = 0;
	    for (int i=1; i<=(getMes()-1); i++)
	      ttMeses += diasNoMes(i);
	 
	    return(ttAnos + ttMeses + getDia());
	  }
	 
	  public String diaDaSemana() {
	    String nomeDiaDaSemana[] = {"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

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

É 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

http://java.sun.com/j2se/1.4.2/docs/api/java/text/DateFormat.html

Criado 30 de setembro de 2009
Ultima resposta 30 de set. de 2009
Respostas 10
Participantes 5