Realizar uma consulta no banco de dados e subtrair a data de registro da data atual do sistema

Boa noite pessoal, peço desculpas se estiver postando no lugar errado, também fiz uma busca e não achei em lugar nenhum a resposta!

a questão é a seguinte, preciso criar uma consulta que pegue a data de um registro no banco de dados mysql, depois compare com a data atual do sistema e faça uma subtração, porém não sei por onde começar, peço desculpas pois sou superiniciante em java! e também se estiver postando no lugar errado!

Boa noite, eu acho que eh isso que você precisa

  // retorna o intervalo de dias entre duas datas
  // passar as datas no formato brasil 
  // ex: contaDias("15/09/2011","20/09/2011")  
    public String contaDias(String dataInicialBR, String dataFinalBR) throws ParseException {  
  
        DateFormat df = new SimpleDateFormat("dd/MM/yyyy");  
        df.setLenient(false);  
  
        Date dataInicio = df.parse(dataInicialBR);  
        Date dataFim = df.parse(dataFinalBR);  
        long dt = (dataFim.getTime() - dataInicio.getTime()) + 3600000;  
        Long diasCorridosAnoLong = (dt / 86400000L);  
  
        Integer diasDecorridosInt = Integer.valueOf(diasCorridosAnoLong.toString());  
  
        String diasDecorridos = String.valueOf(diasDecorridosInt); //Sem numeros formatados;  
  
        return diasDecorridos;  
  
    }  

espero ter ajudado
:thumbup:

O Juliano Vlw pela atenção cara, seguinte, deixa eu explicar melhor:

como eu to aprendendo pra exercitar eu to fazendo um sistema de cadstro para o serviço da minha esposa já que eles usan excel lá… rsrsrsrs! no banco eu tenho um campo data_emprestimo, eu queria colocar um botão no jFrame e um metodo assim: toda vez que clicar no botão, ele faz uma busca no banco por datsa de registro com diferença de 14 meses da data atual, depois e me retorne os registros pode ser em uma jtable mesmo!

Boa noite, acho que consegui simplificar o problema!
No jframe clientes, criei 2 jtextfields, tfDatahoje, e tfDeprestimo, no tfDatahoje coloque o seguinte codigo nas propriedades do jtextfield:

GregorianCalendar data = new GregorianCalendar(TimeZone.getTimeZone("GMT-3"),new Locale("pt_BR")); Date d = data.getTime(); String dt[] = {String.valueOf(d.getDate()), String.valueOf((d.getMonth() + 1)), String.valueOf((d.getYear() + 1900))}; if (Integer.parseInt(dt[0]) < 10) { dt[0] = "0" + dt[0]; } if (Integer.parseInt(dt[1]) < 10) { dt[1] = "0" + dt[1]; } tfDataHoje.setText(dt[0] + dt[1] + dt[2]);

assim sempre que eu abro o form clientes este campo de texto já fica com a data atual do sistema, agora a minha ideia é a seguinte, sera que existe alguma maneira de pegar esta data, diminuir 14 meses e setar o resultado no jtextfield “tfDemprestimo”, porque ai eu criaria um select procurando no banco pela data do resultado da subtração!

ola, o que vc pode fazer é usar o seguinte metodo

[code]
public String somaData(String dataEn, int somaDias) throws ParseException {
String dataVerificada = formataDataExibeMesa(dataEn);

         int dia = Integer.parseInt(dataVerificada.substring(0, 2));
         int mes = Integer.parseInt(dataVerificada.substring(3, 5));
         int ano = Integer.parseInt(dataVerificada.substring(6, 10));

        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");

         Calendar calendar = new GregorianCalendar(ano, mes, dia);
         Date dt = new Date();
       try
       {
            dt = sdf.parse(dataVerificada);
          calendar.setTime(dt);
              calendar.add(calendar.DATE, somaDias);
       }
       catch(ParseException e)
       {
          System.out.println(e.getMessage());
       }


       return sdf.format(calendar.getTime());
}
[/code]

para usar vc faz o seguinte,no primeiro parâmetro passe a data no formato AAAA-MM-DD e no segundo parâmetro passe o numero de dias que você quer subtrair, passe um numero negativo para subtrair caso contrario ele ira somar

// te retorna a data de 10 dias atras 
 Stirng data10DiasAtras = somaData("2011-09-18", -10) 

depois disso você passa essa data na sua query do sql
select * from suaTablela where dataEmprestimo <= dataDeHoje and dataEmprestimo >= data10DiasAtras
:thumbup:

BLZ, e tem como eu setar esse resultado (resultado da subtração) no jtextfield?

é pq assim, eu tenho a classe “ListClientes” depois tenho o pacote “listclientes” onde tem as classes: ListClienteBean (onde tem os get, e set), a ListClienteControl (onde tem os metodos de select, update, insert) então por exemplo a pesquisa de clientes na classe “ListClienteControl” fica assim:

 "String consultaListCliente = "SELECT * FROM CLIENTES WHERE NOME LIKE ?";"

o metodo em “ListClienteControl” fica assim:

[code] public List listarListClientes(String nome){
List listclientes = new ArrayList();
try{
AcessoMySql bd = new AcessoMySql();
pstm = bd.conectar().prepareStatement(consultaListCliente);
pstm.setString(1, nome);// SELECT * FROM CLIENTES WHERE NOME LIKE Rafael
rs = pstm.executeQuery();
ListClienteBean cli;
while (rs.next()){
cli = new ListClienteBean();

          cli.setCodigo(rs.getInt("codigo"));
          cli.setNome(rs.getString("nome"));
          cli.setEndereco(rs.getString("endereco"));
          cli.setBairro(rs.getString("bairro"));
          cli.setCep(rs.getString("cep"));
          cli.setData_emprestimo(rs.getString("data_emprestimo"));
          cli.setData_nascimento(rs.getString("data_nascimento"));
          cli.setNumbeneficio(rs.getString("numbeneficio"));
          cli.setTelefone(rs.getString("telefone"));
          cli.setCidade(rs.getString("cidade"));
          cli.setCpf(rs.getString("cpf"));
          cli.setTipobeneficio(rs.getString("tipobeneficio"));
          cli.setUF(rs.getString("UF"));
          cli.setSalario(rs.getString("salario"));
          cli.setCpf(rs.getString("cpf"));
          cli.setRg(rs.getString("rg"));
          cli.setNum(rs.getString("num"));
          listclientes.add(cli);
          }
      bd.desconectar();
  }
  catch(Exception e){
      e.printStackTrace();
  }
      
   return listclientes;

}[/code]

depois na classe ListClientes que é o form fica assim:

protected void listarClientes(){ ListClienteControl cli = new ListClienteControl(); listclientes = cli.listarListClientes("%" + tfPesquisa.getText().trim() + "%"); mostrarClientes(listclientes); }

então como eu usaria o seu metodo no meu caso?