montei um sistema de pagamento de mensalidades, nele oq eu faco, eu seleciono os meses pagos de um cliente, monto uma lista, faco uma lista com todos os meses e removo dessa lista os meses ja pagos, entao so aparece para o cliente os meses a pagar, porem to com um problema, se um cliente entrar hoje os meses de janeiro, fevereiro, março nao devem aparecer pra ele, pois ele nao tera q pagar, somente desse mes pra frente, como eu faria isso?
segue meu codigo:
public List<String> geraMesesDevedores(int matricula, int ano) throws SQLException {
PreparedStatement stmt;
List<String> meses = new ArrayList<String>();
stmt = connection.prepareStatement("select c.*,m.* from contato c inner join mensalidade m where c.matricula = ? and c.idcontato = m.idcontato and m.pago = '1' and m.ano = ? group by m.idmensalidade order by m.mesref ASC");
stmt.setInt(1, matricula);
stmt.setInt(2, ano);
ResultSet rs = stmt.executeQuery();
while(rs.next()) {
meses.add(rs.getString("m.mes"));
}
rs.close();
stmt.close();
List<String> todosMeses = new ArrayList<String>();
todosMeses.add("JANEIRO");
todosMeses.add("FEVEREIRO");
todosMeses.add("MARÇO");
todosMeses.add("ABRIL");
todosMeses.add("MAIO");
todosMeses.add("JUNHO");
todosMeses.add("JULHO");
todosMeses.add("AGOSTO");
todosMeses.add("SETEMBRO");
todosMeses.add("OUTUBRO");
todosMeses.add("NOVEMBRO");
todosMeses.add("DEZEMBRO");
todosMeses.removeAll(meses);
return todosMeses;
}
Nel, ta certo… isso ja funciona, iria aparecer na tela apartir do mes de Abril, porem o seguinte…
estamos em junho, o cliente se matricula hoje, junho… nao pode aparecer pra ele janeiro fevereiro março abril e maio para pagamento entende? pq como ele nao pagou esses meses no ano de 2011 iria aparecer pra ele esses meses tb, e so quero que aparece apartir do mes que ele entrou.
tava com uns problemas com calculo de tempo! http://www.guj.com.br/java/244873-converter-sql-para-restrictions-resolvido
Tem la a SQL vo posta o BANCO la agora espero que ajude!, só quando for trabalhar com datas tome o cuidado de tipo quando você for pegar um intervalo os e se for TIMESTAMP os minutos e segundos interferem e porem dar problemas ex: se que pegar um dia inteiro hoje no caso 2011/06/26 - 00.00.00.000 ate 2011/06/26 - 23.59.59.999 -->