Javafree
Página Inicial do Fórum > Java Básico

Joda Time - Cálculo de diferença entre datas - Erro



Criar novo tópico   Responder tópico


  1. clever53
    Posts:11


    Comment Arrow

    Publicado em: 23/08/2016 15:20:48

    Já busquei na biblioteca joda, no google, mas não achei uma saída.

    Tenho que calcular a diferença entre duas datas, mas o resultado tem que retornar em dias, meses e anos, pelo calendário comum. Isto é, se por exemplo, a primeira data for 15-01-2015 e a segunda for 15-03-2016(ano bissexto), a resposta terá que ser 1 ano, 2 meses e zero dia. Neste tipo de cálculo exato funciona, mas quando não é redondo, por exemplo de 15-01=2015 a 08-03-2016, dá erro.
    Estou usando o Joda, com os seguintes comandos:


    As datas neste caso, 10/01/2015 e 08/03/2016 (dataInicioPenaPrisao e dataInicioPenaBase) e o retorno está sendo: 1 ano, 1 mês e 6 dias, quando deveria ser 1 ano, 1 mês e 27 dias.
    Há alguma forma de melhorar isso? Ou outra forma de calcular?




  1. clever53
    Posts:11


    Comment Arrow

    Publicado em: 06/10/2016 15:03:45

    Após muita pesquisa, descobri uma biblioteca java que solucionou meu problema. Vou postar a solução para que auxilie outros que, como eu, precisem de resposta semelhante.

    Minhas datas estão no banco de dados Postgresql no formato data sql. Portanto era preciso convertê-las para poder usar o LocalDate que consegue calcular a diferença entre datas pelo calendário comum.



    As respostas do print confirmam:

    a data de início da interrupção é:2015-01-10
    a data do fim da interrupção é:2016-03-08

    a duração em anos da interrupção é:1
    a duração em meses da interrupção é:1
    a duração em dias da interrupção é:27

    Espero ter ajudado!



  1. Relacionados