张晨的个人博客

Java计算两个时间点之间的所有日期及天数

张晨的个人博客2015-05-12Java技术 2914 2A+A-

    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()就是这个时间点之间的天数
	}


文章关键词
Java日期
Calendar
发表评论