Programação  
 
Conhecimento computador >> Programação >> Programação em Java >> 
Como calcular Data Diferença de Java
Calculando a diferença entre duas datas em Java 6.0 e anteriores pode ser enganosamente difícil por causa da necessidade de acomodar os anos bissextos , salto segundos , a luz do dia e outras vezes os ajustes feitos regularmente para o calendário na maioria dos países a economizar. Este tutorial fornece duas soluções , que não deve ser usado em situações onde DST ou anos bissextos pode causar problemas graves e uma opção mais sofisticada com base na biblioteca JSR - 310 . Esta biblioteca está programado para ser parte do Java 7.0 API , quando for lançado no final de 2010 . No entanto, ele pode ser baixado para uso agora. Coisas que você precisa
Computer Fotografia de Java
JSR -310 (opcional)
Mostrar Mais instruções
usando Java 6.0 Ferramentas
1

Criar um nova classe com o nome de " DateDifferencer " eo nome do arquivo " DateDifferencer.java ". Dê-lhe o seguinte esqueleto :

/*** Esta classe irá fornecer dois métodos para encontrar as diferenças entre as datas : * - Um método nativo que não leva em conta os anos bissextos e outras esquisitices data *, mas que seja compatível com a última versão do Java , a partir de início de 2010 * - . . Uma versão mais sofisticada que utiliza a biblioteca externa JSR- 310, * que será incluído no Java 7 , que deverá ser lançado no final de 2010 ** @ author Kevin Walker * /public class DateDifferencer {

}

Tudo o resto vai dentro desse esqueleto de classe.
2

Calcule o número de milissegundos em um dia e armazená-lo em uma constante para uso posterior . Isso é necessário porque o Java 6.0 e versões anteriores entender o tempo de forma nativa em milissegundos ou nanossegundos.

/*** O número de milissegundos em um dia é igual a 1000 milissegundos por segundo * 60 segundos por minuto * 60 minutos por hora * 24 horas por dia * /Tablet

MILLISECONDS_IN_DAY double static final public = 1000 * 60 * 60 * 24 ;
3

Criar o método " findDifference " . Certifique-se de que o comentário Javadoc observa a fraqueza no método para qualquer outra pessoa que opta por usá-lo.

/*** Essa classe usa um método simples para calcular a diferença entre duas datas. * No entanto , não é impecável. Imprecisões podem resultar por causa de anos bissextos. ** @ Return o número de dias de diferença entre as duas datas , sem correção para os anos bissextos ou alterações de horário de poupança. * /Public static double findDifference (Data d1 , Data d2) {

duplo diff = Math.abs ( d2.getTime () - d1.getTime ());

dias duplas = dif /MILLISECONDS_IN_DAY ;

retornar dias;

}

Isso funciona por encontrar a diferença entre as duas datas , em termos de milissegundos. Em seguida, ele divide isso pelo número de milissegundos em um dia (que você calculado na Etapa 2).
Usando JSR -310
4

Coloque o Tempo JSR -310 arquivo " jar" dentro do mesmo diretório que o resto do seu programa.
5

Adicione mais algumas importações para sua classe DateDifferencer para que possa ter acesso à biblioteca JSR 310.

javax.time.Duration importação; javax.time.period.Period importação;
6

Adicione um novo método para a sua classe DateDifferencer

/*** @ return uma string. . descrevendo a diferença entre as duas datas * /public static string findDifferenceWithJSR (Data de início, fim Data ) { duração Duração = Duration.durationBetween ( início, fim) ; Período diff = Period.nanos ( duration.toNanos ()); novo retorno diff.toString (); }

Isso cria um objeto "Duração" , que detém a diferença entre as duas datas. Você poderia parar por aqui e voltar comando " toString " da Duração . No entanto, este fornece a resposta em termos de segundos, o que não é legível. Então, em seguida, cria um objeto "Período " e usa o seu comando " toString " .

Anterior :

Próximo : No
  Os artigos relacionados
·Diferentes técnicas de depuração para Java 
·Java : Static Linking 
·Como usar o Tesseract OCR em Java 
·Lista de bancos de dados usados ​​com Java 
·Como criar um emulador Android 
·Como mapear um Servlet Dentro de um Servlet 
·Como converter PrintStream para BufferedWriter 
·Como encontrar o Max de inteiros em Java 
·Como Abrir JPanel em Java 
·Boas Práticas sobre Como Incorporar Java no JSP 
  Artigos em destaque
·Como escrever um programa Java para estimar sua idade e…
·Como Inteiros de entrada em Java usando um scanner 
·Como Conectar Dois caixas suspensas em HTML e JSP 
·Finalidade de miniaplicativos Java 
·Como definir o foco para Controles ASP.NET 
·Como executar o Eclipse no JDK 
·Como usar arquivos de esqueleto em OGRE 
·Saiba Diagramas UML 
·Cálculos em Adobe LiveCycle Enterprise Suite 
·Como escrever uma Invertendo funções de linha de util…
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados