jfelixap Posted February 15, 2014 at 10:55 PM Report #545433 Posted February 15, 2014 at 10:55 PM Boa noite, preciso de calcular o número de dias entre a data actual do sistema e a uma data e utilizei a classe GregorianCalendar com o seguinte código GregorianCalendar data1 = new GregorianCalendar(2014,02,14); GregorianCalendar data2 = new GregorianCalendar(); long dif =data2.getTimeInMillis()-data1.getTimeInMillis(); long dias = dif/(24*60*60*1000); que dá um valor errado. Sei que o problema está na linha GregorianCalendar data2 = new GregorianCalendar(); porque quando substituo essa linha por GregorianCalendar data2 = new GregorianCalendar(2014,02,17); dá correcto (3 dias). Eu preciso obter a data actual do sistema e depois fazer a diferença e pelo que li na API do JAVA pensei que o correcto seria utilizar o construtor GregorianCalendar(), contudo não dá bem. Se alguém puder ajudar agradecia.
Baderous Posted February 16, 2014 at 11:11 AM Report #545451 Posted February 16, 2014 at 11:11 AM O problema não é nesse construtor, é no outro. Na classe GregorianCalendar os meses começam a ser contados a partir do 0: 0 - Janeiro 1 - Fevereiro 2 - Março ... Logo, estás a instanciar um calendário para 14 de Março e não 14 de Fevereiro. O que tens de fazer é trocar o mês de 2 para 1. 1 Report
jfelixap Posted February 16, 2014 at 03:27 PM Author Report #545473 Posted February 16, 2014 at 03:27 PM Boa tarde, muito obrigado, realmente é óbvio, mas não me ocorreu.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now