情景:
我的结果=报告生成日期 - 访问日期
示例:
报告生成日期为:2016年7月20日
如果访问日期是2016年7月19日 - 结果为0,如果访问日期为2016年7月18日 - 结果为1,如果访问日期为2016年7月17日 - 结果为2,等等
答案 0 :(得分:0)
试一下
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;
}
}