Jump to content

[Resolvido] Dúvida na utilização da classe Gregorian Calendar


Recommended Posts

Posted

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.

Posted

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.

  • Vote 1

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.