O velho e batido assundo de DATAS e horas, com um probleminha a mais

5 respostas
admlaugusto

Ola… como faço pra concatenar dois campos (um com data e outro com hora) de um form:
Só esclarecendo, tem muito assunto sobre isso no fórum, já li o que pude, entendi muita coisa e outras ainda tou estudando… agradeço antecipadamente a ajuda, de sempre!

data_venc||
hora_venc |
|

para depois fazer uma equação com a da atual que ira retornar em dias (ou fracao dele) o resultado,

Exemplo
data_venc|04/05/08|
hora_venc |08:05|

data e hora atual (05/05/08 15:06)

Resultado= -1,29

Ou seja, será preciso concatenar a data e a hora, para fazer essa conta

5 Respostas

victorwss

Algo mais ou menos neste caminho:

java.text.SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");

java.util.Date data1 = sdf.parse("04/05/2008 10:11:12");
java.util.Date data2 = sdf.parse("02/05/2008 11:11:12");

double diasDiferenca = ((double) (data1.getTime() - data2.getTime())) / (24 * 60 * 60 * 1000);

É isso que você quer?

admlaugusto

isso é parte do que quero (uma parte importante por sinaL)\

Agora preciso saber como pegar a data que tá em um campo, e a hora em outro campo.
OU sejca concatenar eles, para poder fazer a conta.

victorwss

admlaugusto:
isso é parte do que quero (uma parte importante por sinaL)\

Agora preciso saber como pegar a data que tá em um campo, e a hora em outro campo.
OU sejca concatenar eles, para poder fazer a conta.

String data = algumaCoisaQueTrasADataDoForm();
String hora = algumaCoisaQueTrasAHoraDoForm();
Date dataHora = sdf.parse(data + " " + hora);

Isso resolve?

admlaugusto

nossa.
funcionou bem aqui… consegui fazer as duas coisa que queria…

minha unica duvida é a seguinte, se eu utilizar um jtextfield para pegar a data, e outro para hora, dá pra fazer de boa.
agora, quando eu uso um campo de data, ele não consegue.

try {
           
            java.text.SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");


            Date pega_data = tf_dataIni.getDateFormatString(); //aqui, eu estaria utilizando um JdateChooser
            //String pega_data = jt_dataini.getText(); // se eu coloco como jtextfied ok, eu utilizo esta linha
             String pega_hora = tf_horaini.getText(); 
            Date dataHora = sdf.parse(String.pega_data + " " + pega_hora); 
            Date data1 = dataHora;
           // Date data2 = sdf.parse("02/05/2008 11:11:12");
               Date data2 = sdf.parse("02/05/2008 11:11:12");          
            double diasDiferenca = ((double) (data1.getTime() - data2.getTime())) / (24 * 60 * 60 * 1000);

            JOptionPane.showMessageDialog(null, diasDiferenca);

        } catch (ParseException ex) {
            Logger.getLogger(duasdatas.class.getName()).log(Level.SEVERE, null, ex);
        }

e mais uma vez obrigado,

victorwss

admlaugusto:
nossa.
funcionou bem aqui… consegui fazer as duas coisa que queria…

minha unica duvida é a seguinte, se eu utilizar um jtextfield para pegar a data, e outro para hora, dá pra fazer de boa.
agora, quando eu uso um campo de data, ele não consegue.

try {
           
            java.text.SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");


            Date pega_data = tf_dataIni.getDateFormatString(); //aqui, eu estaria utilizando um JdateChooser
            //String pega_data = jt_dataini.getText(); // se eu coloco como jtextfied ok, eu utilizo esta linha
             String pega_hora = tf_horaini.getText(); 
            Date dataHora = sdf.parse(String.pega_data + " " + pega_hora); 
            Date data1 = dataHora;
           // Date data2 = sdf.parse("02/05/2008 11:11:12");
               Date data2 = sdf.parse("02/05/2008 11:11:12");          
            double diasDiferenca = ((double) (data1.getTime() - data2.getTime())) / (24 * 60 * 60 * 1000);

            JOptionPane.showMessageDialog(null, diasDiferenca);

        } catch (ParseException ex) {
            Logger.getLogger(duasdatas.class.getName()).log(Level.SEVERE, null, ex);
        }

e mais uma vez obrigado,

String.pega_data???

Criado 16 de abril de 2008
Ultima resposta 16 de abr. de 2008
Respostas 5
Participantes 2