Advertisement
Guest User

Untitled

a guest
Aug 19th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.91 KB | None | 0 0
  1. public static Map<TimeUnit, Long> computeDifference(Calendar date1, Calendar date2) {
  2.  
  3. long diffInMillies = date2.getTimeInMillis() - date1.getTimeInMillis();
  4.  
  5. //create the list
  6. List<TimeUnit> units = new ArrayList<TimeUnit>();
  7. units.add(TimeUnit.SECONDS);
  8. units.add(TimeUnit.MINUTES);
  9. units.add(TimeUnit.HOURS);
  10. units.add(TimeUnit.DAYS);
  11. Collections.reverse(units);
  12.  
  13. //create the result map of TimeUnit and difference
  14. Map<TimeUnit,Long> result = new LinkedHashMap<TimeUnit,Long>();
  15. long milliesRest = diffInMillies;
  16.  
  17. for ( TimeUnit unit : units ) {
  18.  
  19. //calculate difference in millisecond
  20. long diff = unit.convert(milliesRest,TimeUnit.MILLISECONDS);
  21. long diffInMilliesForUnit = unit.toMillis(diff);
  22. milliesRest = milliesRest - diffInMilliesForUnit;
  23.  
  24. //put the result in the map
  25. result.put(unit,diff);
  26. }
  27.  
  28. return result;
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement