Bom dia, to com uma duvida aqui acho que seja simples.
Tenho dois objetos Dates, como faço pra subtrair as duas datas e obter o resultado em dias entre eles?
Bom dia, to com uma duvida aqui acho que seja simples.
Tenho dois objetos Dates, como faço pra subtrair as duas datas e obter o resultado em dias entre eles?
Faça um casting para Calendar, nessa classe é possível operações com datas, acho que é isso.
[code]long diferenca = dataFinal.getTime() - dataInicial.getTime();
long dias = diferenca / (1000 * 60 *60 *24);[/code]
[quote=Eric Yuzo][code]long diferenca = dataFinal.getTime() - dataInicial.getTime();
long dias = diferenca / (1000 * 60 *60 *24);[/code][/quote]
Sabe utilizar o Joda Time?
Estou para aprender a usar, mas ainda não sei não.
Pois é eu fiz o dl do jar aqui e to tentando utiliza-lo, se alguem souber e puder me ajudar. Eu vi um exemplo do Vini aki no guj utilizando as classes LocalTime e Period. Tentei fazer passando um Date no construtor de LocalTime mas nao funcionou.
[code]LocalTime l = new LocalTime(date);
LocalTime l2 = new LocalTime(dataFinal);
Period p = new Period(l, l2);
System.out.println(p.getDays());[/code]
Tem um construtor que recebe um long. Tenta passar “date.getTime()” para ele.
http://joda-time.sourceforge.net/apidocs/org/joda/time/LocalTime.html
tentei tb, ta retornando zero.
as datas tem dois dias de diferença.
Consegui Eric, utilizei da seguinte forma:
System.out.println(Days.daysBetween(new DateTime(date), new DateTime(dataFinal)).getDays());
Cara eu fiz assim uma vez, mas me recomendaram usar o JodaTime então vou re-implementar.
Date startdate = db.getStartDate(project); // pega o date que está armazenado no meu banco
Date enddate = getTime(); // pega a hora atual
Date extrahour = new Date(); // inicia o delta time
int difYear = enddate.getYear() - startdate.getYear();
int difMonth = enddate.getMonth() - startdate.getMonth();
int difDays = enddate.getDate() - startdate.getDate();
int difHour = enddate.getHours() - startdate.getHours();
int difMinutes = enddate.getMinutes() - startdate.getMinutes();
int difSeconds = enddate.getSeconds() - startdate.getSeconds();
extrahour.setYear(difYear);
extrahour.setMonth(difMonth);
extrahour.setDate(difDays);
extrahour.setHours(difHour);
extrahour.setMinutes(difMinutes);
extrahour.setSeconds(difSeconds);
Espero que ajude, tem algumas outras maneiras de realizar utilizando getTimeMiliseconds, algo assim não consegui fazer funcionar.
[quote=evertonsilvagomesjava]Consegui Eric, utilizei da seguinte forma:
System.out.println(Days.daysBetween(new DateTime(date), new DateTime(dataFinal)).getDays());
Legal. Estou para fazer um sisteminha que tem bastante manipulação de data. Aí vou correr atrás de aprender o Joda Time também.
Falou…