预约时间返回json格式数据:
逻辑代码:controller里面可以用@ResponseBody注解返回json格式数据
public List<DayVo> getTimeList() {
List<DayVo> daylist = new ArrayList<DayVo>();
List<String> hours = Arrays.asList("08:00", "08:30", "09:00", "09:30", "10:00", "10:30",
"11:00", "11:30", "12:00", "12:30", "13:00", "13:30", "14:00", "14:30", "15:00",
"15:30", "16:00", "16:30", "17:00", "17:30", "18:00");
//周末预约时间限制
List<String> weekendHours = Arrays.asList("08:30", "09:00", "09:30", "13:30", "14:00",
"14:30");
String[] daysOfWeek = { "周日", "周一", "周二", "周三", "周四", "周五", "周六" };
Calendar calendar = new GregorianCalendar();
SimpleDateFormat sdf = new SimpleDateFormat("MM月dd日");
SimpleDateFormat formatsdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
SimpleDateFormat timestr = new SimpleDateFormat("yyyyMMddHHmm");
int days;
if (calendar.getTime().getHours() < 16 && calendar.getTime().getHours() > 8) {
days = 7;
} else {
days = 8;
}
for (int i = 0; i < days; i++) {
DayVo day = new DayVo();
int w = calendar.get(Calendar.DAY_OF_WEEK) - 1;
String dayOfWeek = daysOfWeek[w];
day.setDay(sdf.format(calendar.getTime()) + "(" + dayOfWeek + ")");
if (calendar.get(Calendar.DAY_OF_MONTH) == new Date().getDate()) { // 判断是不是当天
if (calendar.get(Calendar.HOUR_OF_DAY) >= 22) {
days = 6;
calendar.add(Calendar.DATE, 1);
} else {
if (w == 0 || w == 6) {
for (int j = 0; j < weekendHours.size(); j++) {
if (Integer.parseInt(weekendHours.get(j).split(":")[0])
- new Date().getHours() >= 2) { // 如果是当天,小时数要后推两个小时
addHours(weekendHours, calendar, formatsdf, timestr, day,
dayOfWeek, j);
}
}
} else {
for (int j = 0; j < hours.size(); j++) { // 循环获取当天的整点数8-16点
if (Integer.parseInt(hours.get(j).split(":")[0])
- new Date().getHours() >= 2) { // 如果是当天,小时数要后推两个小时
addHours(hours, calendar, formatsdf, timestr, day, dayOfWeek, j);
}
}
}
}
} else {
if (w == 0 || w == 6) {
for (int j = 0; j < weekendHours.size(); j++) {
addHours(weekendHours, calendar, formatsdf, timestr, day, dayOfWeek, j);
}
} else {
for (int j = 0; j < hours.size(); j++) { // 循环获取当天的整点数8-16点
addHours(hours, calendar, formatsdf, timestr, day, dayOfWeek, j);
}
}
}
calendar.add(Calendar.DATE, 1);
if (day.getHours().size() > 0) {
daylist.add(day);
}
}
return daylist;
}
private void addHours(List<String> weekendHours, Calendar calendar, SimpleDateFormat formatsdf,
SimpleDateFormat timestr, DayVo day, String dayOfWeek, int j) {
calendar.set(calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH), calendar.get(Calendar.DATE),
Integer.parseInt(weekendHours.get(j).split(":")[0]),
Integer.parseInt(weekendHours.get(j).split(":")[1]));
HourVo hour = new HourVo(weekendHours.get(j));
hour.setFormat(formatsdf.format(calendar.getTime()).split(" ")[0]
+ " (" + dayOfWeek + ") "
+ formatsdf.format(calendar.getTime()).split(" ")[1]);
hour.setTimestamp(timestr.format(calendar.getTime()));
day.getHours().add(hour);
}
DayVo:
public class DayVo {
private String day;
private List<HourVo> hours = new ArrayList<HourVo>();
public DayVo(String day) {
super();
this.day = day;
}
public DayVo() {
super();
// TODO Auto-generated constructor stub
}
public String getDay() {
return day;
}
public void setDay(String day) {
this.day = day;
}
public List<HourVo> getHours() {
return hours;
}
public void setHours(List<HourVo> hours) {
this.hours = hours;
}
@Override
public String toString() {
return "DayVo [day=" + day + ", hours=" + hours + "]";
}
}
HourVo:
public class HourVo {
private String hour;
//private List<String> strs = new ArrayList<String>();
private String format;
private String timestamp;
public String getFormat() {
return format;
}
public void setFormat(String format) {
this.format = format;
}
public String getTimestamp() {
return timestamp;
}
public void setTimestamp(String timestamp) {
this.timestamp = timestamp;
}
public HourVo(String hour) {
super();
this.hour = hour;
}
public String getHour() {
return hour;
}
public void setHour(String hour) {
this.hour = hour;
}
// public List<String> getStrs() {
// return strs;
// }
//
// public void setStrs(List<String> strs) {
// this.strs = strs;
// }
@Override
public String toString() {
return "HourVo [hour=" + hour + ", format=" + format + ", timestamp="
+ timestamp + "]";
}
}