Class PatternMatcher
java.lang.Object
org.aoju.bus.cron.pattern.matcher.PatternMatcher
单一表达式的匹配器,匹配器由7个
PartMatcher组成,分别是:
0 1 2 3 4 5 6
SECOND MINUTE HOUR DAY_OF_MONTH MONTH DAY_OF_WEEK YEAR
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
ConstructorsConstructorDescriptionPatternMatcher(PartMatcher secondMatcher, PartMatcher minuteMatcher, PartMatcher hourMatcher, PartMatcher dayOfMonthMatcher, PartMatcher monthMatcher, PartMatcher dayOfWeekMatcher, PartMatcher yearMatcher) 构造 -
Method Summary
Modifier and TypeMethodDescription根据表达式位置,获取对应的PartMatcherbooleanmatch(int[] fields) 给定时间是否匹配定时任务表达式booleanmatchWeek(int dayOfWeekValue) 给定周的值是否匹配定时任务表达式对应部分nextMatchAfter(int[] values, TimeZone zone) 获取下一个匹配日期时间 获取方法是,先从年开始查找对应部分的下一个值: 如果此部分下个值不变,获取下一个部分 如果此部分下个值大于给定值,以下所有值置为最小值 如果此部分下个值小于给定值,回退到上一个值获取下一个新值,之后的值置为最小值
-
Constructor Details
-
PatternMatcher
public PatternMatcher(PartMatcher secondMatcher, PartMatcher minuteMatcher, PartMatcher hourMatcher, PartMatcher dayOfMonthMatcher, PartMatcher monthMatcher, PartMatcher dayOfWeekMatcher, PartMatcher yearMatcher) 构造- Parameters:
secondMatcher- 秒匹配器minuteMatcher- 分匹配器hourMatcher- 时匹配器dayOfMonthMatcher- 日匹配器monthMatcher- 月匹配器dayOfWeekMatcher- 周匹配器yearMatcher- 年匹配器
-
-
Method Details
-
get
根据表达式位置,获取对应的PartMatcher- Parameters:
part- 表达式位置- Returns:
PartMatcher
-
match
public boolean match(int[] fields) 给定时间是否匹配定时任务表达式- Parameters:
fields- 时间字段值,{second, minute, hour, dayOfMonth, month, dayOfWeek, year}- Returns:
- 如果匹配返回
true, 否则返回false
-
matchWeek
public boolean matchWeek(int dayOfWeekValue) 给定周的值是否匹配定时任务表达式对应部分- Parameters:
dayOfWeekValue- dayOfMonth值,星期从0开始,0和7都表示周日- Returns:
- 如果匹配返回
true, 否则返回false
-
nextMatchAfter
获取下一个匹配日期时间 获取方法是,先从年开始查找对应部分的下一个值:- 如果此部分下个值不变,获取下一个部分
- 如果此部分下个值大于给定值,以下所有值置为最小值
- 如果此部分下个值小于给定值,回退到上一个值获取下一个新值,之后的值置为最小值
秒 分 时 日 月 周 年 下 <-----------------> 上- Parameters:
values- 时间字段值,{second, minute, hour, dayOfMonth, month, dayOfWeek, year}zone- 时区- Returns:
Calendar,毫秒数为0
-