paribe
Agosto 12, 2008, 4:18pm
#1
Folks,
não entendi
roda linha :
System.out.println("Calendar.DAY_OF_MONTH="+Calendar.DAY_OF_MONTH);
resultado é 5
e quando coloca na linha
System.out.println("dia=" +dataInicial.get(Calendar.DAY_OF_MONTH));
resultado é a dia =12
Minha duvida porque o valor 5 (Calendar.DAY_OF_MONTH)) da o resultado do dia 12 que é hoje…
se alguém puder me ajudar …só queria entender o porque está certo o resultado ???
agradeceria
String[] dataformatada = new String[2];
SimpleDateFormat sd = new SimpleDateFormat("EEEE-yyyy-MM-dd");
Calendar dataInicial = Calendar.getInstance(new Locale("pt","BR"));
System.out.println("Calendar.DAY_OF_MONTH="+Calendar.DAY_OF_MONTH);
System.out.println("dia=" +dataInicial.get(Calendar.DAY_OF_MONTH));
System.out.println("mes=" +dataInicial.get(Calendar.MONTH));
System.out.println("ano=" +dataInicial.get(Calendar.YEAR));
// dataInicial.add(Calendar.DAY_OF_MONTH, -180);//subtrai 180 dias
Date datai = dataInicial.getTime();
dataformatada[0]=new String( sd.format(datai));
System.out.println("data="+dataformatada[0]);
resultado :
Calendar.DAY_OF_MONTH=5
dia=12
mes=7
ano=2008
data=Terça-feira-2008-08-12
nbluis
Agosto 12, 2008, 4:21pm
#2
Gambiarra por que não existiam enumerations.
DAY_OF_MONTH é um atributo public static final da classe Calendar.
Exatamente para você poder fazer data.get(Calendar.DAY_OF_MONTH);
Se não fosse isso teria que fazer data.get(5);
que convenhamos, fica muito mais dificil
paribe
Agosto 12, 2008, 4:23pm
#3
minha duvida porque o 5 retorna o dia 12.
abs
Cara, isso é uma constante que é usada pela classe Calendar para identificar qual campo da classe você quer obter o valor.
Para ficar um pouco mais claro.
Ele usa algo do tipo:
public int get(int campo){
switch(campo){
case DAY_OF_MONTH:{
return valor_do_dia_atual; // Não sei como ele faz isso
}
}
}
Entendeu?
Abraços
pq qdo vc poem
System.out.println(“Calendar.DAY_OF_MONTH=”+Calendar.DAY_OF_MONTH);
vc esta mostrando o valor da variavel static chamada DAY_OF_MONTH… q é 5
http://java.sun.com/j2se/1.4.2/docs/api/constant-values.html#java.util.Calendar.DAY_OF_MONTH
(segue ai a lista de valores)
esse 5… é o “endereço” de onde fica gravado o real valor do DIA no array interno…
qdo vc dah o get(Calendar.DAY_OF_MONTH)… q seria a mesma coisa q get(5)…
ai vc estaria pegando o dia do mês…
num sei pq tad dando erro mas porque voce não tenta assim?
public static final String FORMATO_DATA = "yyyy-MM-dd";
static Calendar calendario = Calendar.getInstance(TimeZone.getDefault());
static SimpleDateFormat simpleData = new SimpleDateFormat(FORMATO_DATA);
calendario.set(calendario.DAY_OF_MONTH,calendario.get(calendario.DAY_OF_MONTH);