Ajuda hora e data sistema

6 respostas
W

Data e Hora

estou com duvidas sobre os dois casos..
achei um codigo no google para pegar data e hora do sistema
criei classes diferentes para eles e fiz a chamada na classe principal, funcionaram perfeitamente
porem nao estou entendendo certas partes do codigo, se alguem poder me ajudar fico grato..

[b]
package gridbaglayoutdemo;          
import java.awt.event.ActionEvent;  
import java.awt.event.ActionListener;
import java.text.DecimalFormat;
import java.util.Calendar;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Hora extends JPanel{
	JLabel rotulo;
	int hh,mm,ss,h;
	Calendar hora;          [color=red]?????[/color]
	DecimalFormat formato;
	public Hora (){
		setLayout(null);
		rotulo = new JLabel("");
		rotulo.setBounds(20,10,280,20);   [quote][color=red]serao as dimensões da rotulo???[/color][/quote]
		ActionListener tarefa = (new ActionListener(){
		public void actionPerformed(ActionEvent e){
				HORAS();
			}
		});
[quote][color=red]??? daqui pra baixo nao entendo. retirando o add setsize setvisible[/color][/quote]
		javax.swing.Timer time = new javax.swing.Timer(1000,tarefa);	[quote][color=red]???[/color][/quote]
	time.start();
		add(rotulo);
		setSize(100,50);
		setVisible(true); 
              setOpaque(false);
	}
	private void HORAS(){
		hora = Calendar.getInstance();
	hh = hora.get(Calendar.HOUR_OF_DAY);
		mm = hora.get(Calendar.MINUTE);
		ss = hora.get(Calendar.SECOND);
		formato = new DecimalFormat("00");
		rotulo.setText(formatar(hh%24)+": "+formatar(mm)+": "+formatar(ss));
	}	
private String formatar(int num){
		formato = new DecimalFormat("00");
		return formato.format(num);
	}
}

*****************************************************
[code]package gridbaglayoutdemo;
import java.util.Calendar;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Data extends JPanel {
JLabel rotulo2;
int ds,dia,mes,ano;
Calendar data;
String diasemana[]={"Domingo","Segunda-Feira","Terça-Feira","Quarta-Feira","Quinta-Feira","Sexta-Feira","Sábado"};
String meses[]={"janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"};
public Data(){
setLayout(null);
rotulo2 = new JLabel("");

[color=red]daqui pra baixo nao entendo[/color]

rotulo2.setBounds(10,0,300,40);
data = Calendar.getInstance();
ds = data.get(Calendar.DAY_OF_WEEK);
dia = data.get(Calendar.DAY_OF_MONTH);
mes = data.get(Calendar.MONTH);
ano = data.get(Calendar.YEAR);
rotulo2.setText(diasemana[ds-1]+", "+dia+" de "+meses[mes]+" de "+ano);
add(rotulo2);
setSize(100,50);
setOpaque(false);
setVisible(true);
}
}
[code]

6 Respostas

marcosharbs

suas dúvidas me parecem ser na parte gráfica do programa
procure por Swing
é uma API gráfica para Java
JLabel, JTable, JPanel, são tudo componentes visuais que fazem parte desta API

a e para pegar a data do sistema bastaria vc fazer:

Date data = new Date();

pronto neste objeto data vc teria a data completa e atual

W

valeu marcosharbs

mas minhas duvidas nao sao sobre a parte grafica
e sim sobre o que esta acontecendo em determinadas partes do codigo como por exemplo:

rotulo2.setText(diasemana[ds-1]+", “+dia+” de “+meses[mes]+” de "+ano);

entendo que ele rotulo2 esta recebendo dia mes e ano
porem nao entendo diasemana[ds-1] prq -ds1???

pablouu

.

Tchello

marcosharbs:
suas dúvidas me parecem ser na parte gráfica do programa
procure por Swing
é uma API gráfica para Java
JLabel, JTable, JPanel, são tudo componentes visuais que fazem parte desta API

a e para pegar a data do sistema bastaria vc fazer:

Date data = new Date();

pronto neste objeto data vc teria a data completa e atual


Ou também um:

Date d = Calendar.getInstance().getTime();

Abraços.

marcosharbs

walmircard:
valeu marcosharbs

mas minhas duvidas nao sao sobre a parte grafica
e sim sobre o que esta acontecendo em determinadas partes do codigo como por exemplo:

rotulo2.setText(diasemana[ds-1]+", “+dia+” de “+meses[mes]+” de "+ano);

entendo que ele rotulo2 esta recebendo dia mes e ano
porem nao entendo diasemana[ds-1] prq -ds1???

opa desculpa então vamos la…

diasemana é uma array de String certo como visto abaixo, e é inicializado com os dias da semana

String diasemana[]={"Domingo","Segunda-Feira","Terça-Feira","Quarta-Feira","Quinta-Feira","Sexta-Feira","Sábado"};

agora ds é uma variável do tipo int que recebe o dia da semana usando a função get(Calendar.DAY_OF_WEEK) do objeto data que é do tipo Calendar

ds = data.get(Calendar.DAY_OF_WEEK);

ou seja vamos dizer que é quarta-feira então esta função retornará para a variável ds o número 4 ok

agora vc quer imprimir quarta-feira para o usuário e não o número 4, por isso ele faz:

diasemana[ds-1]

no exemplo que dei ele retornará diasemana[4-1] ou seja retornará a String “quarta-feira”
ele usa o menos um porque em Java a primeira posição de um array é a posição 0, então se ele fizesse apenas

diasemana[ds]

ele exibiria o dia errado ou acessaria uma posição do array que não existe disparando um IndexOutOfBoundException

espero ter ajudado
abraço

I

Aí pessoal, me tirem uma dúvida

Nesse código, porque ele instanciou o objeto assim: hora = Calendar.getInstance(); e não da forma tradicional: Calendar hora = new Calendar ?

Tente fazer assim no meu código e não funcionou, qual a diferença?

Criado 23 de setembro de 2009
Ultima resposta 1 de jun. de 2010
Respostas 6
Participantes 5