⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setnextrun.jsp

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JSP
字号:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="cn.jsprun.domain.Crons"%>
<%@page import="cn.jsprun.utils.Common"%>
<%
	float timeoffset = (Float)session.getAttribute("timeoffset");
	Map<String,String> crons = (Map<String,String>)request.getAttribute("crons");
	String minute = crons.get("minute");
	if(minute.equals("")){
		crons.put("available","0");
		return ;
	}
	short hour = Short.parseShort(crons.get("hour"));
	short day = Short.parseShort(crons.get("day"));
	byte weekDay = Byte.parseByte(crons.get("weekday"));
	Calendar calendar = Common.getGMTCalendar();
	calendar.add(Calendar.SECOND, (int)(timeoffset*3600));
	calendar.set(Calendar.SECOND, 0);
	Date date = calendar.getTime();
	String[] minuteArray = minute.split("\t");
	int minuteLengh = minuteArray.length;
	int[] minuteIntArray = new int[minuteLengh];
	for(int i = 0;i<minuteLengh;i++){
		minuteIntArray[i] = Integer.parseInt(minuteArray[i]);
	}
	Arrays.sort(minuteIntArray);
	int nowMinute = calendar.get(Calendar.MINUTE);
	int minMinute = 0;
	int maxMinute = 0;
	int nextRunM = 0;
	if(minuteLengh>0){
		minMinute=minuteIntArray[0];
		maxMinute=minuteIntArray[minuteLengh-1];
	}
	if(nowMinute>=maxMinute){
		nextRunM = minMinute;
		if(hour==-1){
			calendar.add(Calendar.HOUR_OF_DAY, 1);
		}
	}else{
		for(int tempMinute : minuteIntArray){
			if(tempMinute>nowMinute){
				nextRunM = tempMinute;
				break;
			}
		}
	}
	calendar.set(Calendar.MINUTE, nextRunM);
	if(hour>-1){
		calendar.set(Calendar.HOUR_OF_DAY, hour);
		if(!calendar.getTime().after(date)&&weekDay == -1&&day == -1){
			calendar.add(Calendar.DAY_OF_YEAR, 1);
		}
	}
	if (weekDay > -1) {
		calendar.set(Calendar.DAY_OF_WEEK, weekDay+1);
		if(!calendar.getTime().after(date)){
			calendar.add(Calendar.WEEK_OF_MONTH, 1);
		}
	} else {
		if (day > -1) {
			calendar.set(Calendar.DAY_OF_MONTH, day);
			if(!calendar.getTime().after(date)){
				calendar.add(Calendar.MONTH, 1);
			}
		}
	}
	crons.put("nextrun",((int)(calendar.getTimeInMillis()/1000)-(int)(timeoffset*3600))+"");
%>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -