碰到了一个求一段时间间隔的星期总数问题,找到了一个方法,但是忘记从哪里找的了,只有这个方法了。方法输入参数为字符串(“20160101”),会输出星期总数:
/**
* 获取一段时间的星期总数
*
* @param star
* @param end
* @throws ParseException
*/
public String getTotalWeek(String star, String end) throws ParseException {
long CONST_WEEK = 3600 * 1000 * 24 * 7;
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String strBefore = star;
String strAfter = end;
Calendar before = Calendar.getInstance();
Calendar after = Calendar.getInstance();
before.setTime(sdf.parse(strBefore));
after.setTime(sdf.parse(strAfter));
int week = before.get(Calendar.DAY_OF_WEEK);
before.add(Calendar.DATE, -week);
week = after.get(Calendar.DAY_OF_WEEK);
after.add(Calendar.DATE, 7 - week);
Integer interval = (int) ((after.getTimeInMillis() - before
.getTimeInMillis()) / CONST_WEEK);
interval = interval - 1;
return interval.toString();
}