欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

计算某时间段内所有周的时间集合 博客分类: JAVA java日期计算日期工具 

程序员文章站 2024-03-24 08:07:16
...

最近项目中用到要用周为单位统计数据,于是需要获得某时间段内的周的时间集合(开始时间和结束时间)

 

/**
	 * 获取某时间段内所有周的列表(开始时间,结束时间)
	 * @param startDate
	 * @param endDate
	 * @return
	 */
	public static List<String[]> getWeekList(Date startDate,Date endDate){
		List<String[]> weekList = new ArrayList<>();
		//转换成joda-time的对象
		DateTime firstDay = new DateTime(startDate).dayOfWeek().withMinimumValue();
		DateTime lastDay = new DateTime(endDate).dayOfWeek().withMaximumValue();
		//计算两日期间的区间天数
		Period p = new Period(firstDay, lastDay, PeriodType.days());
		int days = p.getDays();
		if (days > 0){
			int weekLength = 7;
			for(int i=0;i<days;i=i+weekLength){
				String monDay = firstDay.plusDays(i).toString("yyyy-MM-dd");
				String sunDay = firstDay.plusDays(i+6).toString("yyyy-MM-dd");
				String [] week = {monDay,sunDay};
				weekList.add(week);
			}
		}
		return weekList;
	}

 不知道有没有更优写法?