Java 根据两个日期的差异需要天数
情景: 我的结果=报告生成日期-访问日期 例如: 报告生成日期:20/07/2016Java 根据两个日期的差异需要天数,java,apache-poi,jxl,Java,Apache Poi,Jxl,情景: 我的结果=报告生成日期-访问日期 例如: 报告生成日期:20/07/2016 如果访问日期为2016年7月19日-结果为0,如果访问日期为2016年7月18日-结果为1,如果访问日期为2016年7月17日-结果为2,等等 public static void main(String []args) { System.out.println(System.currentTimeMillis()); System.out.println(new Date()); M
如果访问日期为2016年7月19日-结果为0,如果访问日期为2016年7月18日-结果为1,如果访问日期为2016年7月17日-结果为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;
}
publicstaticvoidmain(字符串[]args){
System.out.println(System.currentTimeMillis());
System.out.println(新日期());
映射结果=computeDiff(
新日期(“2016年7月20日”),
新日期(“2016年8月20日”)
);
系统输出打印项次(结果);
}
公共静态地图computeDiff(日期日期1,日期日期2){
long diffinmilies=date2.getTime()-date1.getTime();
List units=newarraylist(EnumSet.allOf(TimeUnit.class));
收藏。反向(单位);
映射结果=新建LinkedHashMap();
长毫秒测试=差值毫秒;
用于(时间单位:单位){
long diff=单位转换(毫秒测试,时间单位毫秒);
长差分毫秒FORUNIT=单位为托米利(差分);
milliesRest=milliesRest-单位的差值毫秒;
结果。放置(单位,差异);
}
返回结果;
}
}是什么阻止了你?请不要在这里复制粘贴你的作业。至少,向我们展示您尝试过的内容,以及(没有)工作的内容。谢谢您的代码。。。。。输出看起来像。。。。。{天=1,小时=0,分钟=0,秒=0,毫秒=0,微秒=0,纳秒=0}。但我只想要天的价值。。。就像1。。因此,请建议我/给出代码。在for循环中添加break station。这样它将只返回天值。像{days=7}一样给出put。。。但我只想要。。。7.如何获取它?公共类Main{public static void Main(String[]args){long diffinmilies=new Date(“7/20/2016”).getTime()-new Date(“7/19/2016”).getTime();List units=new arrarylist(EnumSet.allOf(TimeUnit.class));Collections.reverse(units);long millisest=diffinmilies;long diff=units.get(0).convert(millisest,TimeUnit.毫秒);System.out.println(diff);}