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
Muito muito Obrigado
Não tem idéia de como quebrei a cabeça por isso
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.
Dica: Use o método getTimeInMillis() da classe Date, ele retorna um long ai faça a subtração normalmente.
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?
Roberto,
Você me ajudou muuuito.Achei varios codigos por ai, mas nenhum me deu a quantidade de dias certos.
Obrigado!
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
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.
ola. gostaria de subtrair duas datas informadas pelo usuário. estou no inicio e não tenho ideia.
O exemplo acima faz a subtração de duas datas.
Cara, você salvou meu trabalho da facul valeu mesmo.
Otimo comentario amigo, seguinte preciso que haja um calculo assim, dia x mes x ano (2 ultimos digitos ) x 3 . sera q tem como???
Show de bola!!