java工具类
@Data
public class Week {
//周数
private int weekNumber;
//日期
private String date;
//星期
private String dayNumber;
}
//根据日期获取星期
private String dateToWeek(String datetime) {
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
Calendar cal = Calendar.getInstance();
Date date;
try {
date = f.parse(datetime);
cal.setTime(date);
} catch (ParseException e) {
e.printStackTrace();
}
//一周的第几天
int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
if (w < 0)
w = 0;
return weekDays[w];
}
//返回日期、星期、对应的周
private List<Week> time(String startTime, String endTime) {
Calendar c_begin = new GregorianCalendar();
Calendar c_end = new GregorianCalendar();
String[] weeks = new String[]{"", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
String[] split1 = startTime.split("-");
String[] split2 = endTime.split("-");
c_begin.set(Integer.parseInt(split1[0]), Integer.parseInt(split1[1]) - 1, Integer.parseInt(split1[2])); //Calendar的月从0-11,所以4月是3.
c_end.set(Integer.parseInt(split2[0]), Integer.parseInt(split2[1]) - 1, Integer.parseInt(split2[2])); //Calendar的月从0-11,所以5月是4.
int count = 1;
c_end.add(Calendar.DAY_OF_YEAR, 1); //结束日期下滚一天是为了包含最后一天
List<Week> weekList = new ArrayList<>();
while (c_begin.before(c_end)) {
Week week = new Week();
week.setWeekNumber(count);
week.setDate(new java.sql.Date(c_begin.getTime().getTime()) + "");
week.setDayNumber(weeks[c_begin.get(Calendar.DAY_OF_WEEK)]);
weekList.add(week);
if (c_begin.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
count++;
}
c_begin.add(Calendar.DAY_OF_YEAR, 1);
}
return weekList;
}