代码拉取完成,页面将自动刷新
function setCronTak(callback,cronstr){var bool=initCronTask(callback,cronstr);if(!bool){alert("表达式有误")}}function initCronTask(callback,cronstr){var contabs=cronstr.split(" ");var length=contabs.length;var cronArray=new Array();if(length==7){var secondSelectedArray=getValueArray(contabs[0],"second");if(secondSelectedArray==null||secondSelectedArray.length==0){return false}var minuteSelectedArray=getValueArray(contabs[1],"minute");if(minuteSelectedArray==null||minuteSelectedArray.length==0){return false}var hourSelectedArray=getValueArray(contabs[2],"hour");if(hourSelectedArray==null||hourSelectedArray.length==0){return false}var dayArray=getValueArray(contabs[3],"day");if(dayArray==null||dayArray.length==0){return false}var weekArray=getValueArray(contabs[6],"week");if(weekArray==null||weekArray.length==0){return false}var monthSelectedArray=getValueArray(contabs[4],"month");if(monthSelectedArray==null||monthSelectedArray.length==0){return false}var yearArray=getValueArray(contabs[5],"year");if(yearArray==null||yearArray.length==0){return false}}else{return false}var cronObj={};cronObj.secondSelectedArray=secondSelectedArray;cronObj.minuteSelectedArray=minuteSelectedArray;cronObj.hourSelectedArray=hourSelectedArray;cronObj.dayArray=dayArray;cronObj.weekArray=weekArray;cronObj.monthSelectedArray=monthSelectedArray;cronObj.yearArray=yearArray;var now=new Date();var nextTime=getCronNextTime(now,cronObj);if(nextTime!=null){now=new Date();var subTime=nextTime.getTime()-now.getTime();if(subTime<0){subTime=0}setTimeout(function(){callCronTask(callback,cronObj)},subTime)}return true}function callCronTask(callback,cronObj){setTimeout(callback,0);var now=new Date();var nextTime=getCronNextTime(now,cronObj);if(nextTime!=null){now=new Date();var subTime=nextTime.getTime()-now.getTime();if(subTime<0){subTime=0}setTimeout(function(){callCronTask(callback,cronObj)},subTime)}}function getCronNextTime(now,cronObj){var bool=preHandle(now,cronObj);if(!bool){return null}var nextDateObj={};var nextDate=getNextYear(now,cronObj,false,nextDateObj);if(nextDate!=null){return nextDate}else{return null}}function preHandle(now,cronObj){var nowYear=now.getFullYear();var yearArray=cronObj.yearArray;var hasLeapYear=preHandleYear(nowYear,yearArray);var maxSecMonthDay=28;if(hasLeapYear){maxSecMonthDay=29}var monthSelectedArray=cronObj.monthSelectedArray;var maxDays=getMaxDayInMonths(maxSecMonthDay,monthSelectedArray);var dayArray=cronObj.dayArray;var bool=getVaildDayCheck(maxDays,dayArray);if(bool){return true}else{return false}}function getVaildDayCheck(maxDays,dayArray){for(var i=0;i<dayArray.length;i++){var ucron=dayArray[i];var min=ucron.min;var max=ucron.max;if(min<=maxDays||max<=maxDays){return true}}return false}function getMaxDayInMonths(maxSecMonthDay,monthSelectedArray){var maxDays=0;for(var i=0;i<monthSelectedArray.length;i++){var month=monthSelectedArray[i];var days=getMaxDayWithMonth(maxSecMonthDay,month);if(maxDays<days){maxDays=days}}return maxDays}function getMaxDayWithMonth(maxSecMonthDay,month){var day=0;switch(month){case 1:case 3:case 5:case 7:case 8:case 10:case 12:day=31;break;case 2:day=maxSecMonthDay;break;default:day=30}return day}function preHandleYear(nowYear,yearArray){for(var i=0;i<yearArray.length;i++){var ucron=yearArray[i];var min=ucron.min;var max=ucron.max;var divisor=ucron.divisor;if(min!=null&&max!=null){if(min<nowYear){min=nowYear}for(var j=min;j<=max;j++){if(isLeapYear(j)){return true}}}else{return true}}return false}function isLeapYear(Year){if(((Year%4)==0)&&((Year%100)!=0)||((Year%400)==0)){return(true)}else{return(false)}}function getNextYear(now,cronObj,gtFlag,nextDate){var year=now.getFullYear();var yearArray=cronObj.yearArray;var maxYear=getMaxYear(yearArray);var min=getMinValue("year");if(min<year){min=year}for(var i=min;maxYear==null||i<=maxYear;i++){if(isValidValue(yearArray,i)){var gtFlag=i>min?true:false;nextDate.nextYear=i;var dateTmp=getNextMonth(now,cronObj,gtFlag,nextDate);if(dateTmp!=null){return dateTmp}}}return null}function getMaxYear(yearArray){var maxYear=getMinValue("year");for(var i=0;i<yearArray.length;i++){var ucron=yearArray[i];var min=ucron.min;var max=ucron.max;if(min!=null&&max!=null){if(maxYear<max){maxYear=max}}else{return null}}return maxYear}function getNextMonth(now,cronObj,gtFlag,nextDate){var monthSelectedArray=cronObj.monthSelectedArray;var month=null;if(!gtFlag){month=now.getMonth()+1}for(var i=0;i<monthSelectedArray.length;i++){if(gtFlag){nextDate.nextMonth=monthSelectedArray[i];var dateTmp=getNextDay(now,cronObj,gtFlag,nextDate);if(dateTmp!=null){return dateTmp}}else{if(!gtFlag&&month<=monthSelectedArray[i]){nextDate.nextMonth=monthSelectedArray[i];var tmpGtFlag=monthSelectedArray[i]>month?true:false;var dateTmp=getNextDay(now,cronObj,tmpGtFlag,nextDate);if(dateTmp!=null){return dateTmp}}}}return null}function getNextDay(now,cronObj,gtFlag,nextDate){var dayArray=cronObj.dayArray;var weekArray=cronObj.weekArray;var min=getMinValue("day");if(!gtFlag){day=now.getDate();
if(min<day){min=day}}var max=getMonthDays(nextDate.nextYear,nextDate.nextMonth);var tmp=new Date(nextDate.nextYear,nextDate.nextMonth,min);var week=now.getDay();var dayIgnore=isIgnore(dayArray);var weekIgnore=isIgnore(weekArray);for(var i=min;i<=max;i++){if((dayIgnore&&weekIgnore)||isValidValue(dayArray,i)||isValidValue(weekArray,(i-min+week)%7)){nextDate.nextDay=i;if(gtFlag){var dateTmp=getNextHour(now,cronObj,gtFlag,nextDate);if(dateTmp!=null){return dateTmp}}else{var tmpGtFlag=i>min?true:false;var dateTmp=getNextHour(now,cronObj,tmpGtFlag,nextDate);if(dateTmp!=null){return dateTmp}}}}return null}function getNextHour(now,cronObj,gtFlag,nextDate){var hourSelectedArray=cronObj.hourSelectedArray;var hour=null;if(!gtFlag){hour=now.getHours()}for(var i=0;i<hourSelectedArray.length;i++){if(gtFlag){nextDate.nextHour=hourSelectedArray[i];var dateTmp=getNextMinute(now,cronObj,gtFlag,nextDate);if(dateTmp!=null){return dateTmp}}else{if(!gtFlag&&hour<=hourSelectedArray[i]){nextDate.nextHour=hourSelectedArray[i];var tmpGtFlag=hourSelectedArray[i]>hour?true:false;var dateTmp=getNextMinute(now,cronObj,tmpGtFlag,nextDate);if(dateTmp!=null){return dateTmp}}}}return null}function getNextMinute(now,cronObj,gtFlag,nextDate){var minuteSelectedArray=cronObj.minuteSelectedArray;var minute=null;if(!gtFlag){minute=now.getMinutes()}for(var i=0;i<minuteSelectedArray.length;i++){if(gtFlag){nextDate.nextMinute=minuteSelectedArray[i];var dateTmp=getNextSencond(now,cronObj,gtFlag,nextDate);if(dateTmp!=null){return dateTmp}}else{if(!gtFlag&&minute<=minuteSelectedArray[i]){nextDate.nextMinute=minuteSelectedArray[i];var tmpGtFlag=minuteSelectedArray[i]>minute?true:false;var dateTmp=getNextSencond(now,cronObj,tmpGtFlag,nextDate);if(dateTmp!=null){return dateTmp}}}}return null}function getNextSencond(now,cronObj,gtFlag,nextDate){var secondSelectedArray=cronObj.secondSelectedArray;var second=null;if(!gtFlag){second=now.getSeconds()}for(var i=0;i<secondSelectedArray.length;i++){if(gtFlag){nextDate.nextSecond=secondSelectedArray[i];var dateTmp=new Date(nextDate.nextYear,nextDate.nextMonth-1,nextDate.nextDay,nextDate.nextHour,nextDate.nextMinute,nextDate.nextSecond);return dateTmp}else{if(!gtFlag&&second<secondSelectedArray[i]){nextDate.nextSecond=secondSelectedArray[i];var dateTmp=new Date(nextDate.nextYear,nextDate.nextMonth-1,nextDate.nextDay,nextDate.nextHour,nextDate.nextMinute,nextDate.nextSecond);return dateTmp}}}return null}function getValueArray(indexCron,type){var subcrons=indexCron.split(",");var subcronArray=new Array();for(var i=0;i<subcrons.length;i++){var ucron={};var parts=subcrons[i].split("/");if(parts.length==0||parts.length>=3){return null}if(parts.length==1){ucron.divisor=1}else{if(isValidNumber(parts[1])&&parts[1]>0){ucron.divisor=parts[1]}else{return null}}var timeRange=parts[0].split("-");if(timeRange.length==1&&timeRange[0]=="*"){ucron.min=getMinValue(type);ucron.max=getMaxValue(type)}else{if(timeRange.length==1&&timeRange[0]=="?"&&(type=="day"||type=="week")){ucron.min=null;ucron.max=null}else{if(timeRange.length==1&&isValidNumber(timeRange[0])){ucron.min=timeRange[0];ucron.max=timeRange[0]}else{if(timeRange.length==2&&isValidNumber(timeRange[0])&&isValidNumber(timeRange[1])){ucron.min=timeRange[0];ucron.max=timeRange[1]}else{return null}}}}subcronArray[i]=ucron}if(type=="day"||type=="week"||type=="year"){return subcronArray}else{return getSelectedValue(subcronArray,type)}}function getSelectedValue(subcronArray,type){var min=getMinValue(type);var max=getMaxValue(type);var selectedArray=new Array();var j=0;for(var i=min;i<=max;i++){if(isValidValue(subcronArray,i)){selectedArray[j]=i;j++}}return selectedArray}function isValidValue(subcronArray,value){for(var i=0;i<subcronArray.length;i++){var ucron=subcronArray[i];var min=ucron.min;var max=ucron.max;var divisor=ucron.divisor;if(min!=null&&value>=min&&(max==null||value<=max)&&value%divisor==0){return true}}return false}function isIgnore(subcronArray){for(var i=0;i<subcronArray.length;i++){var ucron=subcronArray[i];var min=ucron.min;if(min==null){return true}}return false}function getMonthDays(year,month){var d=new Date(year,month,0);return d.getDate()}function getMinValue(type){if(type=="second"||type=="minute"||type=="hour"||type=="week"){return 0}if(type=="day"||type=="month"){return 1}return 1970}function getMaxValue(type){if(type=="second"||type=="minute"){return 59}if(type=="hour"){return 23}if(type=="day"){return 31}if(type=="month"){return 12}if(type=="week"){return 6}return null}function isValidNumber(str){if(/^\d+$/.test(str)){return true}else{return false}};
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。