Problemas com java.util.Date

4 respostas
EuclidesFilizola
Ae pessoal, oq eu quero fazer é muito simples, porém não to conseguindo. é o seguinte: eu quero fz um pequeno aplicativo onde a pessoa clique "iniciar" ae pega a hora que ele clicou, e finalizar, a hora que ele está saindo, e dae calcular o tempo que isso ocorreu. Porém qndo eu clico no iniciar ele pega a data direitim, mas qndo clica no finalizar ele pega o msmo valor da inicial. Porque ? ae vai o código abaixo:
import java.awt.*;
import java.awt.event.*;
import java.util.Date;


import javax.swing.*;

public class Botoes2 extends JFrame{
	private static int hor;
	private static int min;
	private static int sec;
	private int saveHr;
	private int saveMin;
	private int saveSec;
	private int saveHr2;
	private int saveMin2;
	private int saveSec2;
	Date data1 = new Date();
	Date data2 = new Date();
	private JButton iniciar = new JButton("Iniciar");
	private JButton parar = new JButton("Parar");
	
	public Botoes2(){
		Container mostra = getContentPane();
		mostra.setLayout(null);
		setSize(179,288);
		setTitle("Carga Horária de Trabalho");
		setResizable(false);
		
		add(iniciar);
		add(parar);
		iniciar.setBounds(40,87,90,30);
		parar.setBounds(41,132,90,30);
		
		iniciar.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				iniciar();
			}
		});
		
		parar.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				parar();
			}
		});
	}
	
	
		public void iniciar(){
			Botoes2 obj = new Botoes2();
			System.out.println("Data de Hoje: "+data1); 
			hor = data1.getHours();
			 min = data1.getMinutes();
			 sec = data1.getSeconds();
			 
			 	
			 saveHr = obj.CalculaHr();
			 saveMin = obj.CalculaMin();
			 saveSec = obj.getSec();
			System.out.println("Horas em segundos "+obj.CalculaHr());
			System.out.println("Minutos em segundos "+obj.CalculaMin());
			System.out.println("Segundos "+obj.getSec());
			 
			
		}
		
		public void parar(){
			hor = data2.getHours();
			 min = data2.getMinutes();
			 sec = data2.getSeconds();
			 Botoes2 obj2 = new Botoes2(); 
			 saveHr2 = obj2.CalculaHr();
			 saveMin2 = obj2.CalculaMin();
			 saveSec2 = obj2.getSec();
			System.out.println("Horas em segundos "+obj2.CalculaHr());
			System.out.println("Minutos em segundos "+obj2.CalculaMin());
			System.out.println("Segundos "+obj2.getSec());
			
			obj2.CargaHr();
						
		}
	
	
	
	
	
		
		public static void main(String args[]){
			Botoes2 janela = new Botoes2();
			janela.show();
		}

		public int CalculaHr(){
			this.hor = hor;	
			  hor = ((hor*60)*60);
			  return hor;
		}
		
		public int CalculaMin(){
			this.min = min;
			min = (min*60);

		   return min;
			
		}
		
		public int getSec(){
			this.sec = sec ;
			return sec;
		}
		
		public void CargaHr(){
						
			System.out.println("Horas corridas: "+(saveHr2-saveHr));
			System.out.println("Horas corridas: "+(saveMin2-saveMin));
			System.out.println("Horas corridas: "+(saveMin2-saveMin));
		}

}

4 Respostas

vanzella

O problema é bem simples, voce esta criando a data inicial e final ao mesmo tempo, “new Date()

ivo_costa

Coloca a instância do date dentro do método iniciar e parar:

public void iniciar(){
			data1 = new Date();			
			Botoes2 obj = new Botoes2();
			System.out.println("Data de Hoje: "+data1); 
			hor = data1.getHours();
			 min = data1.getMinutes();
			 sec = data1.getSeconds();
			 
			 	
			 saveHr = obj.CalculaHr();
			 saveMin = obj.CalculaMin();
			 saveSec = obj.getSec();
			System.out.println("Horas em segundos "+obj.CalculaHr());
			System.out.println("Minutos em segundos "+obj.CalculaMin());
			System.out.println("Segundos "+obj.getSec());
			 
			
		}
		
		public void parar(){
			data2 = new Date();
			hor = data2.getHours();
			 min = data2.getMinutes();
			 sec = data2.getSeconds();
			 Botoes2 obj2 = new Botoes2(); 
			 saveHr2 = obj2.CalculaHr();
			 saveMin2 = obj2.CalculaMin();
			 saveSec2 = obj2.getSec();
			System.out.println("Horas em segundos "+obj2.CalculaHr());
			System.out.println("Minutos em segundos "+obj2.CalculaMin());
			System.out.println("Segundos "+obj2.getSec());
			
			obj2.CargaHr();
						
		}
EuclidesFilizola

vixe é mesmo ó ma ! valeu

agora só não ta dando certo a diferença …

vou tentar aqui ajeitar alguma coisa. qlquer problema retorno aqui minha dúvida. agradeço aae ajuda de vcs !

G

Oh tava fuçando no seu código... ele não esta fechando...

coloca
public Botoes2(){   
        Container mostra = getContentPane();   
        mostra.setLayout(null);   
        setSize(179,288);

        // Para finalizar o programa!
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Criado 24 de janeiro de 2008
Ultima resposta 24 de jan. de 2008
Respostas 4
Participantes 4