Armazenar hora atual[Resolvido]

5 respostas
Paulo_Mour

Bom dia a todos,

Alguém poderia me informar como posso armazenar a hora atual do sistema para cálculo da diferença entre a atual e a posterior. Segue abaixo o método:

//Obtém a hora do sistema na entrada do veículo no estacionamento
	public void dataAtual()
	{
		System.out.printf("Nome do veículo: %s\n", getNomeVeiculo());
		System.out.printf("Placa do veículo: %s\n", getPlacaVeiculo());
		System.out.printf("Data de entrada: %s/%s/%s\n", calendar.get(calendar.DATE),  
				calendar.get(calendar.MONTH), calendar.get(calendar.YEAR));
		System.out.printf("Hora de entrada: %d:%02d:%02d", calendar.get(calendar.HOUR_OF_DAY), 
				calendar.get(calendar.MINUTE), calendar.get(calendar.SECOND));

Abs,

5 Respostas

fernandopaiva

se o campo de hora no seu bd for Time, basta usar PreparedStatement setTime.

public void insereBanco(){
   PreparedStatement stm = conexao.PreparedStatement("INSERT INTO tabela (hora) VALUES (?)");
   stm.setTime(1, (faz o cast aqui)campoHora.getText()); 

}

Para data segue o msm esquema com setDate.

t+

Paulo_Mour

Obrigado Fernando. Testarei desta forma e assim que tiver a resposta postarei no fórum.
Abs,

D

se seu banco for MySql, nao precisa nem fazer stantment, basta apenas colocar o metodo now() dentor do atributo que já grava…
por exemplo:

String sql = “INSERT INTO venda (codigo,data,total) "
+ " values (?,now(),?)”;

dessa forma basta vc setar apenas o primeiro e o terceiro paramentro…

vlw

A

Boa noite, caso o objetivo não seja armazenar no banco, segue um exemplo de como fazer o armazenamento e o calculo.

import static javax.swing.JOptionPane.*;

import java.text.*;
import java.util.*;

public class DiferencaTempo {
	public static void main(String[] args) {
		String aux = "";
		Date[] datas = new Date[2];
		DateFormat df = DateFormat.getDateTimeInstance();
		df.setLenient(false);

		for (byte i = 0; i < 2; i++) {
			while (true) {
				aux = showInputDialog("Informe uma data e hora   <dd/mm/aaaa hh:MM:ss>");
				if (aux == null)
					System.exit(0);
				try{
					datas[i] = df.parse(aux);
					break;
				}catch(ParseException pe){
					showMessageDialog(null, "Data inválida", "Erro", 0);
				}
			}
		}
		
		aux = "Dados informados: " + df.format(datas[0]) + " e " + df.format(datas[1]);
		double dif = datas[1].getTime()-datas[0].getTime();
		
		NumberFormat nf = new DecimalFormat("#,000");
		aux += "\nDiferença em milissegundos: " + nf.format(dif);
		
		nf = new DecimalFormat("#,###.00");
		dif /= 1000;
		aux += "\nDiferença em segundos: " + nf.format(dif);
		dif /= 60;
		aux += "\nDiferença em minutos: " + nf.format(dif);
		dif /= 60;
		aux += "\nDiferença em horas: " + nf.format(dif);
		dif /= 24;
		aux += "\nDiferença em dias" + nf.format(dif);
		
		
		showMessageDialog(null, aux);
		System.exit(0);
	}
}
Paulo_Mour

Era justamente isso que eu queria Alessando. Agora lerei seu código para entendê-lo.

Obrigado a todos.

Abs,

Criado 14 de novembro de 2010
Ultima resposta 15 de nov. de 2010
Respostas 5
Participantes 4