亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? uicrontrigger.java

?? Quartz 是個開源的作業(yè)調度框架
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
     * this <code>CronTrigger</code> will be resolved.     * </p>     */    public TimeZone getTimeZone() {        return this.timeZone;    }    /**     * <p>     * Sets the time zone for which the <code>cronExpression</code> of this     * <code>CronTrigger</code> will be resolved.     * </p>     */    public void setTimeZone(TimeZone timeZone) {        this.timeZone = timeZone;    }    /**     * <p>     * Returns the next time at which the <code>CronTrigger</code> will fire,     * after the given time. If the trigger will not fire after the given time,     * <code>null</code> will be returned.     * </p>     *      * <p>     * Note that the date returned is NOT validated against the related     * org.quartz.Calendar (if any)     * </p>     */    public Date getFireTimeAfter(Date afterTime) {        if (afterTime == null) afterTime = new Date();        if (startTime.after(afterTime))                afterTime = new Date(startTime.getTime() - 1000l);        Date pot = getTimeAfter(afterTime);        if (endTime != null && pot != null && pot.after(endTime)) return null;        return pot;    }    /**     * <p>     * Returns the final time at which the <code>CronTrigger</code> will     * fire.     * </p>     *      * <p>     * Note that the return time *may* be in the past. and the date returned is     * not validated against org.quartz.calendar     * </p>     */    public Date getFinalFireTime() {        if (this.endTime != null) return getTimeBefore(this.endTime);        else            return null;    }    /**     * <p>     * Determines whether or not the <code>CronTrigger</code> will occur     * again.     * </p>     */    public boolean mayFireAgain() {        return (getNextFireTime() != null);    }    protected boolean validateMisfireInstruction(int misfireInstruction) {        if (misfireInstruction < MISFIRE_INSTRUCTION_SMART_POLICY)                return false;        if (misfireInstruction > MISFIRE_INSTRUCTION_DO_NOTHING) return false;        return true;    }    /**     * <p>     * Updates the <code>CronTrigger</code>'s state based on the     * MISFIRE_INSTRUCTION_XXX that was selected when the <code>SimpleTrigger</code>     * was created.     * </p>     *      * <p>     * If the misfire instruction is set to MISFIRE_INSTRUCTION_SMART_POLICY,     * then the following scheme will be used: <br>     * <ul>     * <li>The instruction will be interpreted as <code>MISFIRE_INSTRUCTION_DO_NOTHING</code>     * </ul>     * </p>     */    public void updateAfterMisfire() {        int instr = getMisfireInstruction();        if (instr == MISFIRE_INSTRUCTION_SMART_POLICY)                instr = MISFIRE_INSTRUCTION_DO_NOTHING;        if (instr == MISFIRE_INSTRUCTION_DO_NOTHING) {            setNextFireTime(getFireTimeAfter(new Date()));        } else if (instr == MISFIRE_INSTRUCTION_FIRE_ONCE_NOW) {            setNextFireTime(new Date());        }    }    /**     * <p>     * Determines whether the date & time of the given java.util.Calendar     * instance falls on a scheduled fire-time of this trigger.     * </p>     *      * <p>     * Note that the date returned is NOT validated against the related     * org.quartz.Calendar (if any)     * </p>     */    public boolean willFireOn(Calendar test) {        Integer second = new Integer(test.get(Calendar.SECOND));        Integer minute = new Integer(test.get(Calendar.MINUTE));        Integer hour = new Integer(test.get(Calendar.HOUR_OF_DAY));        Integer day = new Integer(test.get(Calendar.DAY_OF_MONTH));        Integer month = new Integer(test.get(Calendar.MONTH));        if ((seconds.contains(second) || seconds.contains(ALL_SPEC))                && (minutes.contains(minute) || minutes.contains(ALL_SPEC))                && (hours.contains(hour) || hours.contains(ALL_SPEC))                && (daysOfMonth.contains(day) || daysOfMonth.contains(ALL_SPEC))                && (months.contains(month) || months.contains(ALL_SPEC))) {         return true; }        return false;    }    /**     * <p>     * Called after the <code>{@link Scheduler}</code> has executed the     * <code>{@link Job}</code> associated with the <code>Trigger</code> in     * order to get the final instruction code from the trigger.     * </p>     *      * @param context     *          is the <code>JobExecutionContext</code> that was used by the     *          <code>Job</code>'s<code>execute(xx)</code> method.     * @param result     *          is the <code>JobExecutionException</code> thrown by the     *          <code>Job</code>, if any (may be null).     * @return one of the Trigger.INSTRUCTION_XXX constants.     *      * @see #INSTRUCTION_NOOP     * @see #INSTRUCTION_RE_EXECUTE_JOB     * @see #INSTRUCTION_DELETE_TRIGGER     * @see #INSTRUCTION_SET_TRIGGER_COMPLETE     * @see #triggered(Calendar)     */    public int executionComplete(JobExecutionContext context,            JobExecutionException result) {        if (result != null && result.refireImmediately())                return Trigger.INSTRUCTION_RE_EXECUTE_JOB;        if (result != null && result.refireImmediately())                return INSTRUCTION_RE_EXECUTE_JOB;        if (result != null && result.unscheduleFiringTrigger())                return INSTRUCTION_SET_TRIGGER_COMPLETE;        if (result != null && result.unscheduleAllTriggers())                return INSTRUCTION_SET_ALL_JOB_TRIGGERS_COMPLETE;        if (!mayFireAgain()) return INSTRUCTION_DELETE_TRIGGER;        return INSTRUCTION_NOOP;    }    /**     * <p>     * Called when the <code>{@link Scheduler}</code> has decided to 'fire'     * the trigger (execute the associated <code>Job</code>), in order to     * give the <code>Trigger</code> a chance to update itself for its next     * triggering (if any).     * </p>     *      * @see #executionComplete(JobExecutionContext, JobExecutionException)     */    public void triggered(org.quartz.Calendar calendar) {        previousFireTime = nextFireTime;        nextFireTime = getFireTimeAfter(nextFireTime);        while (nextFireTime != null && calendar != null                && !calendar.isTimeIncluded(nextFireTime.getTime())) {            nextFireTime = getFireTimeAfter(nextFireTime);        }    }    /**     *       * @see org.quartz.Trigger#updateWithNewCalendar(org.quartz.Calendar, long)     */    public void updateWithNewCalendar(org.quartz.Calendar calendar, long misfireThreshold)    {        nextFireTime = getFireTimeAfter(previousFireTime);                Date now = new Date();        do {            while (nextFireTime != null && calendar != null                    && !calendar.isTimeIncluded(nextFireTime.getTime())) {                nextFireTime = getFireTimeAfter(nextFireTime);            }                        if(nextFireTime != null && nextFireTime.before(now)) {                long diff = now.getTime() - nextFireTime.getTime();                if(diff >= misfireThreshold) {                    nextFireTime = getFireTimeAfter(nextFireTime);                    continue;                }            }        }while(false);    }    /**     * <p>     * Called by the scheduler at the time a <code>Trigger</code> is first     * added to the scheduler, in order to have the <code>Trigger</code>     * compute its first fire time, based on any associated calendar.     * </p>     *      * <p>     * After this method has been called, <code>getNextFireTime()</code>     * should return a valid answer.     * </p>     *      * @return the first time at which the <code>Trigger</code> will be fired     *         by the scheduler, which is also the same value <code>getNextFireTime()</code>     *         will return (until after the first firing of the <code>Trigger</code>).     *         </p>     */    public Date computeFirstFireTime(org.quartz.Calendar calendar) {        nextFireTime = getFireTimeAfter(new Date(startTime.getTime() - 1000l));        while (nextFireTime != null && calendar != null                && !calendar.isTimeIncluded(nextFireTime.getTime())) {            nextFireTime = getFireTimeAfter(nextFireTime);        }        return nextFireTime;    }    public String getExpressionSummary() {        StringBuffer buf = new StringBuffer();        buf.append("seconds: ");        buf.append(getExpressionSetSummary(seconds));        buf.append("\n");        buf.append("minutes: ");        buf.append(getExpressionSetSummary(minutes));        buf.append("\n");        buf.append("hours: ");        buf.append(getExpressionSetSummary(hours));        buf.append("\n");        buf.append("daysOfMonth: ");        buf.append(getExpressionSetSummary(daysOfMonth));        buf.append("\n");        buf.append("months: ");        buf.append(getExpressionSetSummary(months));        buf.append("\n");        buf.append("daysOfWeek: ");        buf.append(getExpressionSetSummary(daysOfWeek));        buf.append("\n");        buf.append("lastdayOfWeek: ");        buf.append(lastdayOfWeek);        buf.append("\n");        buf.append("lastdayOfMonth: ");        buf.append(lastdayOfMonth);        buf.append("\n");        buf.append("calendardayOfWeek: ");        buf.append(calendardayOfWeek);        buf.append("\n");        buf.append("calendardayOfMonth: ");        buf.append(calendardayOfMonth);        buf.append("\n");        buf.append("years: ");        buf.append(getExpressionSetSummary(years));        buf.append("\n");        return buf.toString();    }    private String getExpressionSetSummary(Set set) {        if (set.contains(NO_SPEC)) return "?";        if (set.contains(ALL_SPEC)) return "*";        StringBuffer buf = new StringBuffer();        Iterator itr = set.iterator();        boolean first = true;        while (itr.hasNext()) {            Integer iVal = (Integer) itr.next();            String val = iVal.toString();            if (!first) buf.append(",");            buf.append(val);            first = false;        }        return buf.toString();    }    ////////////////////////////////////////////////////////////////////////////    //    // Computation Functions    //    ////////////////////////////////////////////////////////////////////////////    private Date getTimeAfter(Date afterTime) {        Calendar cl = Calendar.getInstance(timeZone);        // move ahead one second, since we're computing the time *after* the        // given time        afterTime = new Date(afterTime.getTime() + 1000);        // CronTrigger does not deal with milliseconds        cl.setTime(afterTime);        cl.set(Calendar.MILLISECOND, 0);        boolean gotOne = false;        // loop until we've computed the next time, or we've past the endTime        while (!gotOne) {            if (endTime != null && cl.getTime().after(endTime)) return null;            SortedSet st = null;            int t = 0;            int sec = cl.get(Calendar.SECOND);            int min = cl.get(Calendar.MINUTE);            // get second.................................................            st = seconds.tailSet(new Integer(sec));            if (st != null && st.size() != 0) {                sec = ((Integer) st.first()).intValue();            } else {                sec = ((Integer) seconds.first()).intValue();                min++;                cl.set(Calendar.MINUTE, min);            }            cl.set(Calendar.SECOND, sec);            min = cl.get(Calendar.MINUTE);            int hr = cl.get(Calendar.HOUR_OF_DAY);            t = -1;            // get minute.................................................            st = minutes.tailSet(new Integer(min));            if (st != null && st.size() != 0) {                t = min;                min = ((Integer) st.first()).intValue();            } else {                min = ((Integer) minutes.first()).intValue();                hr++;            }            if (min != t) {                cl.set(Calendar.SECOND, 0);                cl.set(Calendar.MINUTE, min);                cl.set(Calendar.HOUR_OF_DAY, hr);                continue;            }            cl.set(Calendar.MINUTE, min);            hr = cl.get(Calendar.HOUR_OF_DAY);            int day = cl.get(Calendar.DAY_OF_MONTH);            t = -1;            // get hour...................................................            st = hours.tailSet(new Integer(hr));            if (st != null && st.size() != 0) {                t = hr;                hr = ((Integer) st.first()).intValue();            } else {                hr = ((Integer) hours.first()).intValue();                day++;            }            if (hr != t) {                cl.set(Calendar.SECOND, 0);                cl.set(Calendar.MINUTE, 0);                cl.set(Calendar.HOUR_OF_DAY, hr);                cl.set(Calendar.DAY_OF_MONTH, day);                continue;            }            cl.set(Calendar.HOUR_OF_DAY, hr);            day = cl.get(Calendar.DAY_OF_MONTH);            int mon = cl.get(Calendar.MONTH) + 1; // '+ 1' because calendar is            // 0-based for this field,            // and we are 1-based            t = -1;            // get day...................................................            boolean dayOfMSpec = !daysOfMonth.contains(NO_SPEC);            boolean dayOfWSpec = !daysOfWeek.contains(NO_SPEC);            if (dayOfMSpec && !dayOfWSpec) { // get day only by day of month                // rule                st = daysOfMonth.tailSet(new Integer(day));                if (lastdayOfMonth) {                    t = day;                    day = getLastDayOfMonth(mon);                } else if (st != null && st.size() != 0) {                    t = day;                    day = ((Integer) st.first()).intValue();                } else {                    day = ((Integer) daysOfMonth.first()).intValue();                    mon++;                }                if (day != t) {                    cl.set(Calendar.SECOND, 0);                    cl.set(Calendar.MINUTE, 0);                    cl.set(Calendar.HOUR_OF_DAY, 0);                    cl.set(Calendar.DAY_OF_MONTH, day);                    cl.set(Calendar.MONTH, mon - 1); // '- 1' because calendar                    // is 0-based for this                    // field, and we are                    // 1-based                    continue;                }            } else if (dayOfWSpec && !dayOfMSpec) { // get day only by day of                // week rule                if (lastdayOfWeek) { // are we looking for the last XXX day of                    // the month?                    int dow = ((Integer) daysOfWeek.first()).intValue(); // desired                    // d-o-w                    int cDow = cl.get(Calendar.DAY_OF_WEEK); // current d-o-w                    int daysToAdd = 0;                    if (cDow < dow) daysToAdd = dow - cDow;                    if (cDow > dow) daysToAdd = dow + (7 - cDow);                    int lDay = getLastDayOfMonth(mon);                    if (day + daysToAdd > lDay) { // did we already miss the                        // last one?                        cl.set(Calendar.SECOND, 0);                        cl.set(Calendar.MINUTE, 0);                        cl.set(Calendar.HOUR_OF_DAY, 0);                        cl.set(Calendar.DAY_OF_MONTH, 1);                        cl.set(Calendar.MONTH, mon); // no '- 1' here because                        // we are promoting the                        // month                        continue;                    }                    // find date of last occurance of this day in this month...                    while ((day + daysToAdd + 7) <= lDay)                        daysToAdd += 7;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品少妇一区二区三区在线视频| 亚洲国产婷婷综合在线精品| 一个色在线综合| 久久激情五月婷婷| 欧美综合久久久| 国产精品视频观看| 久久99久久精品欧美| 精品视频在线看| 日韩一区在线播放| 国产精品一区在线观看你懂的| 欧美日韩高清在线播放| 亚洲女人的天堂| 成人性生交大片免费看中文| 日韩视频免费直播| 亚洲成年人影院| 色婷婷综合视频在线观看| 中文字幕免费在线观看视频一区| 久久精品99国产精品日本| 欧美日韩五月天| 亚洲综合久久av| 91久久一区二区| 一区二区三区高清在线| av一区二区不卡| 综合分类小说区另类春色亚洲小说欧美 | 精品国产乱码久久久久久影片| 亚洲自拍偷拍av| 色视频欧美一区二区三区| 中文字幕日韩一区| 99re这里只有精品6| 欧美国产激情二区三区| 国产91在线|亚洲| 国产婷婷色一区二区三区四区| 国产精品综合二区| 久久先锋影音av鲁色资源网| 久久99精品久久久久久国产越南 | 亚洲激情一二三区| 色综合一区二区三区| 亚洲黄色尤物视频| 欧美三级电影网站| 欧美bbbbb| 精品国产一二三区| 国产综合久久久久久久久久久久| 欧美电影精品一区二区| 狠狠v欧美v日韩v亚洲ⅴ| 欧美mv日韩mv亚洲| 国产99久久久国产精品免费看| 中文字幕久久午夜不卡| 一本色道综合亚洲| 日本欧美一区二区三区| www国产成人| www.久久久久久久久| 亚洲精品国产第一综合99久久| 欧美日韩久久久一区| 免费在线看成人av| 国产欧美综合在线| 欧美性极品少妇| 久久99国产精品免费网站| 国产亚洲一区二区三区四区| 91免费国产视频网站| 日本视频在线一区| 国产精品久久久久桃色tv| 在线亚洲人成电影网站色www| 日本成人在线网站| 中文字幕欧美一区| 欧美一级理论性理论a| 丁香五精品蜜臀久久久久99网站 | 青青草国产成人99久久| 久久一二三国产| 99久久99久久精品免费观看| 五月天久久比比资源色| 久久久久久影视| 欧美日韩三级视频| 国产激情91久久精品导航| 亚洲免费伊人电影| 精品美女一区二区| 欧美曰成人黄网| 国产精品一线二线三线| 婷婷综合久久一区二区三区| 国产蜜臀av在线一区二区三区| 欧美日韩在线一区二区| 国产一区二区三区免费播放| 午夜精品成人在线| 亚洲欧洲美洲综合色网| 久久伊99综合婷婷久久伊| 欧美日韩精品一区二区三区四区 | 综合电影一区二区三区 | 国产精品77777| 亚洲国产视频直播| 国产精品久久久久毛片软件| 日韩精品最新网址| 精品视频一区三区九区| 成人精品gif动图一区| 精品一区在线看| 同产精品九九九| 一区二区三区免费观看| 国产精品国产三级国产aⅴ原创| 日韩视频在线观看一区二区| 欧美色视频在线观看| 成人理论电影网| 国产精品99久久久久久宅男| 久久精品国产一区二区三| 日韩一区精品字幕| 亚洲sss视频在线视频| 一区二区不卡在线播放 | 日本aⅴ亚洲精品中文乱码| 亚洲一区视频在线| 一区二区三区资源| 亚洲欧美电影院| 亚洲色图色小说| 亚洲欧美在线视频观看| 1024成人网色www| 国产精品久久久久久久久搜平片| 国产日本欧洲亚洲| 国产女同性恋一区二区| 国产日产精品1区| 国产精品久久久久影视| 国产精品久久看| 中文字幕一区二区不卡| 亚洲精品大片www| 一区二区三区在线免费播放| 亚洲电影你懂得| 天天综合网 天天综合色| 免费精品视频在线| 精品一二三四区| 国产精品白丝av| av中文字幕亚洲| 在线视频观看一区| 91精品福利在线一区二区三区 | 三级久久三级久久| 免费在线成人网| 国产精品主播直播| 99在线精品一区二区三区| 欧美在线视频不卡| 欧美videos中文字幕| 国产欧美日韩精品在线| 一区二区三区自拍| 免费看精品久久片| 成人h版在线观看| 欧洲精品视频在线观看| 日韩午夜av电影| **性色生活片久久毛片| 亚洲www啪成人一区二区麻豆| 久久不见久久见中文字幕免费| 粉嫩13p一区二区三区| 欧美色网站导航| 26uuu精品一区二区| 亚洲视频在线观看一区| 免费在线观看视频一区| 成人18视频日本| 欧美二区三区91| 国产精品二区一区二区aⅴ污介绍| 亚洲一区二区三区视频在线| 国产美女一区二区| 欧美在线免费观看亚洲| 精品国产伦一区二区三区免费| 国产精品久久久久久久第一福利| 亚洲成人tv网| 成人精品高清在线| 精品欧美一区二区在线观看| 亚洲女同一区二区| 黄网站免费久久| 欧美三级电影精品| 国产精品国产三级国产aⅴ无密码| 日韩av一级电影| 99久久er热在这里只有精品15| 日韩午夜三级在线| 亚洲一区在线电影| 成人网在线免费视频| 日韩欧美色综合| 夜夜爽夜夜爽精品视频| 国产成都精品91一区二区三| 欧美日韩dvd在线观看| 最新国产の精品合集bt伙计| 韩国午夜理伦三级不卡影院| 欧美日韩的一区二区| 亚洲精品视频在线看| 国产一区 二区| 日韩精品一区二区三区四区| 亚洲一区二区三区在线看| 99精品久久免费看蜜臀剧情介绍| 欧美刺激脚交jootjob| 亚洲五码中文字幕| 日本韩国欧美一区二区三区| 一区精品在线播放| 国产精品一区二区不卡| 欧美岛国在线观看| 日av在线不卡| 91精品国产综合久久精品性色| 亚洲精品国产a| 91麻豆6部合集magnet| 国产精品护士白丝一区av| 国产91在线观看| 国产精品污网站| 成人小视频在线观看| 亚洲国产成人午夜在线一区| 国产福利一区二区三区在线视频| 久久久久国产精品人| 国产精品资源站在线| 中文字幕av一区 二区| 波多野结衣中文字幕一区|