[Resolvido] Calcular diferença entre datas no ireport

Pessoal, li e reli vários links que encontrei na internet (inclusive a maioria foi desse fórum), mas mesmo assim não consegui resolver minha dúvida.

Tenho um relatório que é preenchido com todos os cadastros de determinada tabela. Nesta tabela existe um campo com a data que indica desde quando aquele cliente utiliza os serviços da empresa. Preciso criar um campo neste relatório que estou fazendo onde seja possível mostrar quanto tempo já se passou (em anos) desde que cada cliente foi registrado no sistema.

Utilizo o ireport versão 5.1.0. Em resumo o que preciso fazer é obter a data atual do sistema e calcular a diferença desta em relação a data que consta na tabela.

Agradeço desde já pela atenção dos colegas.

Eu vejo 3 formas de fazer:

1 - calcula no Java e manda o valor pronto.
2 - calcula na query SQL
3 - no Ireporte crie uma expressão, ex:

$F{DATA_ATUAL}.getDate() - $F{DATA_OLD}.getDate()

eu faria no Java e enviaria o campo com o valor pronto.

aix boa tarde!

Olha eu tentei criando uma variável no ireport mesmo e minha sintaxe ficou assim:

$V{dataAtual} - $F{dataAdmissao}

Sendo que a variável é do tipo java.util.Date e no campo “Variable expression” eu coloquei assim: new java.util.Date().

Gostaria que o relatório já trouxesse essa informação ao usuário, portanto seria a terceira opção que comentou.

@marcos3, assim como @aix, também recomendo que faça no Java, até pelo fato de ser importante você validar se as datas não são NULL, sua “dataAtual” ser maior que “dataAdmissao” (ou alguma outra regra), etc.

Dá para fazer no iReport? Possivelmente, se usar Calendar. Veja um exemplo:

Espero ter ajudado.

<variable name="suaVariavel" class="java.lang.Number" resetType="None">
		<variableExpression><![CDATA[$F{DATA_ATUAL}.getDate() - $F{DATA_ADMISSAO}.getDate()]]></variableExpression>
	</variable>

<textFieldExpression class="java.lang.Integer"><![CDATA[$V{suaVariavel}]]></textFieldExpression>

achei bem legal com Calendar, obrigado por compartilhar.

Obrigado pessoal!