Retornar quantidade de dias de uma data

3 respostas
R

Gente, beleza?

Tenho uma tarefa a realizar e preciso de ajuda: Tenho uma aplicação em Java que deve receber uma data de nascimento (jtfEntrada) e retornar a quantidade de dias entre a data inserida e a data atual.
Como faço pra quando clicar no botão ‘calcular’ a resposta aparecer em jtfSaida?
Parece que só falta isso.

Valeu!

3 Respostas

D

Cara vê se isso te ajuda.

package javaapplication;

import java.text.SimpleDateFormat;

public class JavaApplication {

    public static void main(String[] args) {
        try{
            SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");  
            java.sql.Date dataEntrada = new java.sql.Date(format.parse("01/03/2013").getTime()); 
            java.sql.Date dataAtual = new java.sql.Date(System.currentTimeMillis());
            long dias = (((( dataAtual.getTime() - dataEntrada.getTime())/1000)/60)/60)/24;
            javax.swing.JOptionPane.showMessageDialog(null, "Diferença de dias entre as datas: " + dias);
        }
        catch ( Exception e )
        {
            javax.swing.JOptionPane.showMessageDialog(null, e);
        }
    }
}
R

Amigão, estou tentando usando o seguinte código:

{  
  //inicio do bloco 01
       int dp, mp, ap;
       dp = Integer.parseInt(jtfEntrada.getText().substring(0,2));
       mp = Integer.parseInt(jtfEntrada.getText().substring(3,5));
       ap = Integer.parseInt(jtfEntrada.getText().substring(6,10));
       Data dataPassada = new Data();
       dataPassada.setData(dp, mp, ap);
   //fim do bloco 01

  //inicio do bloco 02       
       int da, ma, aa;
       da = Integer.parseInt(jtfEntrada.getText().substring(0,2));
       ma = Integer.parseInt(jtfEntrada.getText().substring(3,5));
       aa = Integer.parseInt(jtfEntrada.getText().substring(6,10));
       Data dataAtual = new Data();
       dataPassada.setData(da, ma, aa);
    //fim do bloco 02
       
       int diasVividos = dataPassada.diferencaEntre(dataAtual);
       
       res += diasVividos;
       jtfSaida.setText(" " + diasVividos);

       }

Mas, como pode ver, a data atual(bloco 02) está recebendo o mesmo valor da data passada(bloco 01), daí o resultado é sempre zero. Como mudo o código para a data atual ser capturada automaticamente?

D
rui.a:
Amigão, estou tentando usando o seguinte código:
{  
  //inicio do bloco 01
       int dp, mp, ap;
       dp = Integer.parseInt(jtfEntrada.getText().substring(0,2));
       mp = Integer.parseInt(jtfEntrada.getText().substring(3,5));
       ap = Integer.parseInt(jtfEntrada.getText().substring(6,10));
       Data dataPassada = new Data();
       dataPassada.setData(dp, mp, ap);
   //fim do bloco 01

  //inicio do bloco 02       
       int da, ma, aa;
       da = Integer.parseInt(jtfEntrada.getText().substring(0,2));
       ma = Integer.parseInt(jtfEntrada.getText().substring(3,5));
       aa = Integer.parseInt(jtfEntrada.getText().substring(6,10));
       Data dataAtual = new Data();
       dataPassada.setData(da, ma, aa);
    //fim do bloco 02
       
       int diasVividos = dataPassada.diferencaEntre(dataAtual);
       
       res += diasVividos;
       jtfSaida.setText(" " + diasVividos);

       }

Mas, como pode ver, a data atual(bloco 02) está recebendo o mesmo valor da data passada(bloco 01), daí o resultado é sempre zero. Como mudo o código para a data atual ser capturada automaticamente?

Pode reparar no código que mostrei para vc a função
System.currentTimeMillis()
retorna o tempo atual que pode ser convertido em data atual. Preste atenção se está certo no bloco 2
//inicio do bloco 02         
       int da, ma, aa;  
       da = Integer.parseInt(jtfEntrada.getText().substring(0,2));  
       ma = Integer.parseInt(jtfEntrada.getText().substring(3,5));  
       aa = Integer.parseInt(jtfEntrada.getText().substring(6,10));  
       Data dataAtual = new Data();  //Aqui
       dataPassada.setData(da, ma, aa);  //ou Aqui
    //fim do bloco 02
Criado 6 de março de 2013
Ultima resposta 6 de mar. de 2013
Respostas 3
Participantes 2