Class PatternMatcher

java.lang.Object
org.aoju.bus.cron.pattern.matcher.PatternMatcher

public class PatternMatcher extends Object
单一表达式的匹配器,匹配器由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 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

      public PartMatcher get(Part part)
      根据表达式位置,获取对应的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

      public Calendar nextMatchAfter(int[] values, TimeZone zone)
      获取下一个匹配日期时间 获取方法是,先从年开始查找对应部分的下一个值:
      • 如果此部分下个值不变,获取下一个部分
      • 如果此部分下个值大于给定值,以下所有值置为最小值
      • 如果此部分下个值小于给定值,回退到上一个值获取下一个新值,之后的值置为最小值
              秒 分 时 日 月 周 年
           下 <-----------------> 上
       
      Parameters:
      values - 时间字段值,{second, minute, hour, dayOfMonth, month, dayOfWeek, year}
      zone - 时区
      Returns:
      Calendar,毫秒数为0