spring mvc連續七天的預約時間

預約時間返回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 + "]";
	}


}





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章