/////////////////////////////////////////////////////////////////////// public static CronSet Parse(String expr) { var field = new CronSet(); var parts = expr.Split(','); foreach (var part in parts) { var range = CronRange.Parse(part); if (range != null) { field.Accept(range); } } return field; }
/////////////////////////////////////////////////////////////////////// private String ToString(CronSet set) { return (set == null) ? "*" : set.ToString(); }
/////////////////////////////////////////////////////////////////////// private void AssignField(int field, String part) { var set = CronSet.Parse(part); switch (field) { case 0: Seconds = set; break; case 1: Minutes = set; break; case 2: Hours = set; break; case 3: DaysOfMonth = set; break; case 4: Months = set; break; case 5: DaysOfWeek = set; break; case 6: Years = set; break; default: throw new ArgumentOutOfRangeException("field"); } }
/////////////////////////////////////////////////////////////////////// private static bool Matches(CronSet set, DayOfWeek day) { return (set == null) || set.Contains(day); }
/////////////////////////////////////////////////////////////////////// private static bool Matches(CronSet set, int value) { return (set == null) || set.Contains(value); }