根据两个日期的差异需要天数

时间:2016-07-20 10:44:02

标签: java apache-poi jxl

情景:

  

我的结果=报告生成日期 - 访问日期

示例:

  

报告生成日期为:2016年7月20日

如果访问日期是2016年7月19日 - 结果为0,如果访问日期为2016年7月18日 - 结果为1,如果访问日期为2016年7月17日 - 结果为2,等等

1 个答案:

答案 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;
}

}