发表评论
Java中计算日期及天数的场景还是非常多的,下面代码是通过Calendar类来实现Java时间点之间计算所有日期的例子;
/** * 获取两个日期中间的工作日 * * @param starttime * @param endtime * @return List<Date> */ private List<Date> getWorktime(String starttime, String endtime) { Object[] obj = new Object[2]; //返回结果 List<Date> list = new ArrayList<Date>();//返回对应的所有日期 //设置时间格式 DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); //开始日期 Date dateFrom = null; Date dateTo = null; try { dateFrom = dateFormat.parse(starttime); dateTo = dateFormat.parse(endtime); } catch (Exception e) { e.printStackTrace(); } Calendar cal = null; while (dateFrom.before(dateTo) || dateFrom.equals(dateTo)) { cal = Calendar.getInstance(); //设置日期 cal.setTime(dateFrom); list.add(cal.getTime()); //屏蔽周末判断 /* * if((cal.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY) * &&(cal.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY)){ * //进行比较,如果日期不等于周六也不等于周日,工作日+1 * * } */ //日期加1 cal.add(Calendar.DAY_OF_MONTH, 1); dateFrom = cal.getTime(); } return list; //list的size()就是这个时间点之间的天数 }