String start = "2017-01-27";
String end = "2017-12-27"
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
if( list != null && list.size() == 1){
for (Map map : list) {
long CONST_WEEK = 1000 * 3600 * 24 * 7;//一周毫秒数
try {
Date start = sdf.parse(start );
Date end = sdf.parse(end );
Calendar startCal = Calendar.getInstance();
startCal.setTime(start);
Calendar endCal = Calendar.getInstance();
endCal.setTime(end);
Date now = new Date();
Calendar nowCal = Calendar.getInstance();
nowCal.setTime(now);
//查找开始日期的那个星期的第一天
int dayOfWeek = startCal.get(Calendar.DAY_OF_WEEK);
startCal.add(Calendar.DATE, -(dayOfWeek -1));//周日是第一天 所以-1
//查找结束日期的那个星期的第一天
dayOfWeek = endCal.get(Calendar.DAY_OF_WEEK);
endCal.add(Calendar.DATE, 7-(dayOfWeek-1));
//计算总共多少周
int total = (int) ((endCal.getTimeInMillis() - startCal.getTimeInMillis()) / CONST_WEEK);
for (int i = 0; i < total ;i++ ) {
HashMap<String, String> week = new HashMap<String, String>();
week.put("index", String.valueOf(i+1));
week.put("title", "第"+(i+1)+"周");
startCal.add(Calendar.DATE, 1);
String time = sdf.format(startCal.getTime());//第一天
startCal.add(Calendar.DATE, 6);
time += "~"+sdf.format(startCal.getTime());//最后一天
week.put("time", time);
weeks.add(week);
}
} catch (ParseException e) {
e.printStackTrace();
}
}
获取两个日期的周数并记录周开始日期和周结束日期
最新推荐文章于 2023-06-28 11:44:57 发布