Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static Map<TimeUnit, Long> computeDifference(Calendar date1, Calendar date2) {
- long diffInMillies = date2.getTimeInMillis() - date1.getTimeInMillis();
- //create the list
- List<TimeUnit> units = new ArrayList<TimeUnit>();
- units.add(TimeUnit.SECONDS);
- units.add(TimeUnit.MINUTES);
- units.add(TimeUnit.HOURS);
- units.add(TimeUnit.DAYS);
- Collections.reverse(units);
- //create the result map of TimeUnit and difference
- Map<TimeUnit,Long> result = new LinkedHashMap<TimeUnit,Long>();
- long milliesRest = diffInMillies;
- for ( TimeUnit unit : units ) {
- //calculate difference in millisecond
- long diff = unit.convert(milliesRest,TimeUnit.MILLISECONDS);
- long diffInMilliesForUnit = unit.toMillis(diff);
- milliesRest = milliesRest - diffInMilliesForUnit;
- //put the result in the map
- result.put(unit,diff);
- }
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement