Cálculo da diferença entre datas em Java
10/fevereiro/2009 - Java
Olá!
Abaixo um exemplo de como fazer cálculo de subtração entre datas com Java. Há um tempo atrás eu postei como fazer o cálculo de tempo com Oracle PL/SQL.
package br.com.furutani; import java.util.Calendar; /** * Calcula a diferença em dias entre a data de hoje e o dia 10/FEV/2008 * @author Roberto Jundi */ public class Calendario { public static void main(String[] args) { // Data inicial Calendar dataInicio = Calendar.getInstance(); // Atribui a data de 10/FEV/2008 dataInicio.set(2008, Calendar.FEBRUARY, 10); // Data de hoje Calendar dataFinal = Calendar.getInstance(); // Calcula a diferença entre hoje e da data de inicio long diferenca = dataFinal.getTimeInMillis() - dataInicio.getTimeInMillis(); // Quantidade de milissegundos em um dia int tempoDia = 1000 * 60 * 60 * 24; long diasDiferenca = diferenca / tempoDia; System.out.println("Entre a data inicial e final são " + diasDiferenca + " dias de diferença."); } }
Até mais,
Roberto
abril 24th, 2009 at 19:46
Muito muito Obrigado
Não tem idéia de como quebrei a cabeça por isso
janeiro 19th, 2010 at 9:47
Bom dia Furutani!
To com uma dúvida aqui, to precisando calcular a diferença entre horas.Eu estava fazendo assim:
Minha data está neste formato: 2009-11-28 22:00:00
Integer diferencaHorasUteis = requisicao.getDataHoraRetornoEfetivo().getHours() – requisicao.getDataHoraSaidaEfetiva().getHours();
Mas além de estar depreciado, ele nao calcula correto,apenas se for horas redondas.Ex: 23 – 22 = 1h
Mas se for EX: 23:30 – 22 ele me calcula errado.
Pesquisei algumas coisas na net,testei mas nao deu mt certo.
janeiro 19th, 2010 at 18:53
Dica: Use o método getTimeInMillis() da classe Date, ele retorna um long ai faça a subtração normalmente.
fevereiro 12th, 2010 at 16:46
O método getTimeMillis() calcula anos bissextos também?? Pois o getTime() não calcula, e não tenho idéia de como fazer isso…será que você pode me ajudar?
janeiro 9th, 2011 at 23:17
Roberto,
Você me ajudou muuuito.Achei varios codigos por ai, mas nenhum me deu a quantidade de dias certos.
Obrigado!
novembro 7th, 2012 at 15:41
to com uma dúvida: quero pegar o valor do campo controlDate (classe swing) e subtrair com o valor do outro campo controlDate, lembrando q o valor q o campo retorna é Date. ;s
novembro 7th, 2012 at 15:47
Se essa classe ControlDate retornar um objeto java.util.Date é possível “transformá-la” em Calendar usando o método Calendar.setTime(Date).
Feito isso você pode usar o exemplo do post.
setembro 13th, 2013 at 18:44
ola. gostaria de subtrair duas datas informadas pelo usuário. estou no inicio e não tenho ideia.
setembro 13th, 2013 at 20:14
O exemplo acima faz a subtração de duas datas.
setembro 28th, 2013 at 21:10
Cara, você salvou meu trabalho da facul valeu mesmo.
outubro 10th, 2013 at 14:57
Otimo comentario amigo, seguinte preciso que haja um calculo assim, dia x mes x ano (2 ultimos digitos ) x 3 . sera q tem como???
setembro 8th, 2015 at 11:47
Show de bola!!