segunda-feira, 16 de novembro de 2015

Método para obter a diferença entre duas datas com Java

 public Map<TimeUnit, Long> computeDiff(Date date1, Date date2) {  
           long diffInMillies = date2.getTime() - date1.getTime();  
           List<TimeUnit> units = new ArrayList<TimeUnit>(EnumSet.allOf(TimeUnit.class));  
           Collections.reverse(units);  
           Map<TimeUnit, Long> result = new LinkedHashMap<TimeUnit, Long>();  
           long milliesRest = diffInMillies;  
           for (TimeUnit unit : units) {  
                long diff = unit.convert(milliesRest, TimeUnit.MILLISECONDS);  
                long diffInMilliesForUnit = unit.toMillis(diff);  
                milliesRest = milliesRest - diffInMilliesForUnit;  
                result.put(unit, diff);  
           }  
           return result;  
      }  

// Chamada:  
 Map<TimeUnit, Long> tempo = this.computeDiff(dataAnterior, dataAtual);  
                     dataUr = tempo.get(TimeUnit.HOURS) + ":" + tempo.get(TimeUnit.MINUTES) + ":" + tempo.get(TimeUnit.SECONDS);  

Nenhum comentário:

Postar um comentário