Problema com data

2 respostas
leandrosu

Boa tarde Galera…

Estou usando o seguinte codigo para achar a diferenca em dias entre as datas,

DateFormat df = new SimpleDateFormat ("dd-MM-yyyy"); df.setLenient(false); Date d1 = df.parse (data); //out.println (d1); Date d2 = df.parse (termino); //out.println (d2); long dt = (d2.getTime() - d1.getTime()) + 3600000; long diferenca = (dt / 86400000L);

o problema e quando muda o mes da data ex: ( d1 - 01/09/2008 = d2 - 01/10/2008 )

O resultado continua me retornando 10 dias de diferenca.
Alguem saberia como me ajudar a resolver esse problema??

Desde ja grato

2 Respostas

filipefox

Opa, testei o seu código e tá retornando legal, testei com o código abaixo e tá funcionando do jeito que vc quer.

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

class teste {
	public static void main(String[] args) {
		String inicio = "01-09-2008";
		String termino = "01-10-2008";
		
		DateFormat df = new SimpleDateFormat("dd-MM-yyyy");     
		df.setLenient(false);     
		
		try {
			Date d1 = df.parse(inicio);
			Date d2 = df.parse(termino);     
			
			long dt = (d2.getTime() - d1.getTime()) + 3600000;    
			long diferenca  = (dt / 86400000L);
			System.out.println(diferenca);
		} catch (ParseException e) {
			e.printStackTrace();
		}		
	}
}
ferro

Cara, tem a Joda Time, que é uma biblioteca bem legal tb para trabalhar com datas. Ela já tem uma classe que calcula tudo isso pra você.

[]'s

Criado 1 de setembro de 2008
Ultima resposta 1 de set. de 2008
Respostas 2
Participantes 3