|
@@ -0,0 +1,63 @@
|
|
|
+package com.ruoyi.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());
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|