需要基于两个日期之差的天数

Need number of days based on difference of two dates

场景:

My result = Report generation date - Visited date

示例:

Report generation date is : 20/07/2016

如果访问日期为 19/07/2016 - 结果为 0,如果访问日期为 18/07/2016 - 结果为 1,如果访问日期为 17/07/2016 - 结果为 2,依此类推

试试这个

 public static void main(String []args) {
    System.out.println(System.currentTimeMillis());
    System.out.println(new Date());
    Map<TimeUnit,Long> result = computeDiff(
            new Date("7/20/2016"),
        new Date("8/20/2016")
    );
    System.out.println(result);
 }

public static 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;
}

}