Diminuindo Data através do Jasper

2 respostas
G

Olá Pessoal,

Tenho uma apliação feita em jasper, onde recebo dois parametros o mês e o ano, conforme este dois tenho que contar o numero de clientes cadastrados nos 3 ultimos trimestres e exibi-los para o usuário, mas para contar é necessario diminuir o mês da data passada. Já tentei fazer com a classe calendar mas não consegui, se alguem souber de alguma expressão que possibilite faz isso. Pode ser através do SQL, mas se for possível em Java.

O codigo:
<code>new Integer((new Date((new Date(“01/”+$P{pMes}.intValue()+"/"+$P{pAno}.intValue())).getTime() - 2678400000L)).getYear())</code>

2678400000L --> este numero significa o valor de um mês em milisegundos esta certo??? Desta maneira funciona mas retorna um valor errado

2 Respostas

K

sou novo com java não posso te ajudar com o código, mas vai a idéia:

junte o mes e o ano num inteiro -> AnoMes (ex: 200409, 200312, 200201)
deste inteiro, subtraia (9 + 88) [9 p/ 3 trimestres] , e dai separe, os digitos em Ano/Mes novamente.

essa gambiarra precisa ser melhorada, pra cada 12 q vc subtrair, tem q subtrair mais 88. no caso dos 9, eh soh verificar se o mes que vc tem eh menor que 9 ou se o resultado eh maior que 12, pra saber se deve tirar os 88 ou não.

se alguém souber a forma “certa” de fazer isto, poste aqui plz =P

andre_a_s

Vc pode usar o SimpleDateFormat() pra isso

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); sdf.format("19/13/2000");

Ele vai retornar 19/01/2001 :wink:

Criado 19 de agosto de 2004
Ultima resposta 20 de ago. de 2004
Respostas 2
Participantes 3