Pular para o conteúdo

Cálculo da diferença entre datas em 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.
[sourcecode language=”java”]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.”);

}

}[/sourcecode]
Até mais,
Roberto

12 comentários em “Cálculo da diferença entre datas em Java”

  1. 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.

  2. 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?

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *