package com.billion.quartz.util; import java.text.ParseException; import java.util.Date; import org.quartz.CronExpression; /** * cron表达å¼å·¥å…·ç±» * * @author ruoyi * */ public class CronUtils { /** * 返回一个布尔值代表一个给定的Cron表达å¼çš„æœ‰æ•ˆæ€§ * * @param cronExpression Cronè¡¨è¾¾å¼ * @return boolean è¡¨è¾¾å¼æ˜¯å¦æœ‰æ•ˆ */ public static boolean isValid(String cronExpression) { return CronExpression.isValidExpression(cronExpression); } /** * 返回一个å—符串值,è¡¨ç¤ºè¯¥æ¶ˆæ¯æ— 效Cron表达å¼ç»™å‡ºæœ‰æ•ˆæ€§ * * @param cronExpression Cronè¡¨è¾¾å¼ * @return String æ— æ•ˆæ—¶è¿”å›žè¡¨è¾¾å¼é”™è¯¯æè¿°,如果有效返回null */ public static String getInvalidMessage(String cronExpression) { try { new CronExpression(cronExpression); return null; } catch (ParseException pe) { return pe.getMessage(); } } /** * è¿”å›žä¸‹ä¸€ä¸ªæ‰§è¡Œæ—¶é—´æ ¹æ®ç»™å®šçš„Cronè¡¨è¾¾å¼ * * @param cronExpression Cronè¡¨è¾¾å¼ * @return Date 下次Cronè¡¨è¾¾å¼æ‰§è¡Œæ—¶é—´ */ public static Date getNextExecution(String cronExpression) { try { CronExpression cron = new CronExpression(cronExpression); return cron.getNextValidTimeAfter(new Date(System.currentTimeMillis())); } catch (ParseException e) { throw new IllegalArgumentException(e.getMessage()); } } }