diff --git a/hutool-cron/src/main/java/cn/hutool/cron/pattern/CronPattern.java b/hutool-cron/src/main/java/cn/hutool/cron/pattern/CronPattern.java index b026cdd3c..4b57f8c8a 100644 --- a/hutool-cron/src/main/java/cn/hutool/cron/pattern/CronPattern.java +++ b/hutool-cron/src/main/java/cn/hutool/cron/pattern/CronPattern.java @@ -152,7 +152,6 @@ public class CronPattern { * @return 如果匹配返回 {@code true}, 否则返回 {@code false} */ public boolean match(GregorianCalendar calendar, boolean isMatchSecond) { - final int second = calendar.get(Calendar.SECOND); final int minute = calendar.get(Calendar.MINUTE); final int hour = calendar.get(Calendar.HOUR_OF_DAY); final int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH); @@ -162,7 +161,7 @@ public class CronPattern { boolean eval; for (int i = 0; i < matcherSize; i++) { - eval = ((false == isMatchSecond) || secondMatchers.get(i).match(second)) // 匹配秒(非秒匹配模式下始终返回true) + eval = ((false == isMatchSecond) || secondMatchers.get(i).match(calendar.get(Calendar.SECOND))) // 匹配秒(非秒匹配模式下始终返回true) && minuteMatchers.get(i).match(minute)// 匹配分 && hourMatchers.get(i).match(hour)// 匹配时 && isMatchDayOfMonth(dayOfMonthMatchers.get(i), dayOfMonth, month, calendar.isLeapYear(year))// 匹配日 diff --git a/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/DayOfWeekValueParser.java b/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/DayOfWeekValueParser.java index bad5fa9fc..bf486c31c 100644 --- a/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/DayOfWeekValueParser.java +++ b/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/DayOfWeekValueParser.java @@ -4,20 +4,22 @@ import cn.hutool.cron.CronException; /** * 星期值处理
- * 1表示星期一,2表示星期二,依次类推,0和7都可以表示星期日 - * - * @author Looly + * 1表示星期一,2表示星期二,依次类推,0和7都可以表示星期日
+ * {@code L}表示周六 * + * @author Looly */ -public class DayOfWeekValueParser extends SimpleValueParser { - - /** Weeks aliases. */ - private static final String[] ALIASES = { "sun", "mon", "tue", "wed", "thu", "fri", "sat" }; +public class DayOfWeekValueParser extends SimpleValueParser { + + /** + * Weeks aliases. + */ + private static final String[] ALIASES = {"sun", "mon", "tue", "wed", "thu", "fri", "sat"}; public DayOfWeekValueParser() { super(0, 7); } - + /** * 对于星期提供转换
* 1表示星期一,2表示星期二,依次类推,0和7都可以表示星期日 @@ -33,16 +35,17 @@ public class DayOfWeekValueParser extends SimpleValueParser { /** * 解析别名 + * * @param value 别名值 * @return 月份int值 * @throws CronException 无效别名抛出此异常 */ private int parseAlias(String value) throws CronException { - if("L".equalsIgnoreCase(value)){ + if ("L".equalsIgnoreCase(value)) { //最后一天为星期六 return ALIASES.length - 1; } - + for (int i = 0; i < ALIASES.length; i++) { if (ALIASES[i].equalsIgnoreCase(value)) { return i; diff --git a/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/HourValueParser.java b/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/HourValueParser.java index 5041f3837..ad3c530cb 100644 --- a/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/HourValueParser.java +++ b/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/HourValueParser.java @@ -1,12 +1,13 @@ package cn.hutool.cron.pattern.parser; /** - * 小时值处理 - * @author Looly + * 小时值处理
+ * 小时被限定在0-23 * + * @author Looly */ -public class HourValueParser extends SimpleValueParser{ - +public class HourValueParser extends SimpleValueParser { + public HourValueParser() { super(0, 23); } diff --git a/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/MinuteValueParser.java b/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/MinuteValueParser.java index 474660477..28fda7468 100644 --- a/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/MinuteValueParser.java +++ b/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/MinuteValueParser.java @@ -1,12 +1,13 @@ package cn.hutool.cron.pattern.parser; /** - * 分钟值处理 - * @author Looly + * 分钟值处理
+ * 限定于0-59 * + * @author Looly */ -public class MinuteValueParser extends SimpleValueParser{ - +public class MinuteValueParser extends SimpleValueParser { + public MinuteValueParser() { super(0, 59); } diff --git a/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/MonthValueParser.java b/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/MonthValueParser.java index 2f2f47d52..ab870a8d1 100644 --- a/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/MonthValueParser.java +++ b/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/MonthValueParser.java @@ -3,20 +3,22 @@ package cn.hutool.cron.pattern.parser; import cn.hutool.cron.CronException; /** - * 月份值处理 - * - * @author Looly + * 月份值处理
+ * 限定于1-12,1表示一月,支持别名,如一月是{@code jan} * + * @author Looly */ public class MonthValueParser extends SimpleValueParser { - /** Months aliases. */ - private static final String[] ALIASES = { "jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec" }; + /** + * Months aliases. + */ + private static final String[] ALIASES = {"jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"}; public MonthValueParser() { super(1, 12); } - + @Override public int parse(String value) throws CronException { try { @@ -28,6 +30,7 @@ public class MonthValueParser extends SimpleValueParser { /** * 解析别名 + * * @param value 别名值 * @return 月份int值 * @throws CronException 无效月别名抛出此异常 diff --git a/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/SecondValueParser.java b/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/SecondValueParser.java index b3697ccbc..ae0839c49 100644 --- a/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/SecondValueParser.java +++ b/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/SecondValueParser.java @@ -1,9 +1,10 @@ package cn.hutool.cron.pattern.parser; /** - * 秒值处理 - * @author Looly + * 秒值处理
+ * 限定于0-59 * + * @author Looly */ -public class SecondValueParser extends MinuteValueParser{ +public class SecondValueParser extends MinuteValueParser { } diff --git a/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/SimpleValueParser.java b/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/SimpleValueParser.java index 280e92290..7a3d139e9 100644 --- a/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/SimpleValueParser.java +++ b/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/SimpleValueParser.java @@ -3,15 +3,20 @@ package cn.hutool.cron.pattern.parser; import cn.hutool.cron.CronException; /** - * 简易值转换器。将给定String值转为int - * @author Looly + * 简易值转换器。将给定String值转为int,并限定最大值和最小值
+ * 此类同时识别{@code L} 为最大值。 * + * @author Looly */ public class SimpleValueParser implements ValueParser { - - /** 最小值(包括) */ + + /** + * 最小值(包括) + */ protected int min; - /** 最大值(包括) */ + /** + * 最大值(包括) + */ protected int max; /** @@ -21,10 +26,10 @@ public class SimpleValueParser implements ValueParser { * @param max 最大值(包括) */ public SimpleValueParser(int min, int max) { - if(min > max){ + if (min > max) { this.min = max; this.max = min; - }else{ + } else { this.min = min; this.max = max; } @@ -32,7 +37,7 @@ public class SimpleValueParser implements ValueParser { @Override public int parse(String value) throws CronException { - if("L".equalsIgnoreCase(value)){ + if ("L".equalsIgnoreCase(value)) { // L表示最大值 return max; } diff --git a/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/YearValueParser.java b/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/YearValueParser.java index 13222c3e6..858d020dd 100644 --- a/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/YearValueParser.java +++ b/hutool-cron/src/main/java/cn/hutool/cron/pattern/parser/YearValueParser.java @@ -1,12 +1,13 @@ package cn.hutool.cron.pattern.parser; /** - * 年值处理 - * @author Looly + * 年值处理
+ * 年的限定在1970-2099年 * + * @author Looly */ -public class YearValueParser extends SimpleValueParser{ - +public class YearValueParser extends SimpleValueParser { + public YearValueParser() { super(1970, 2099); }