/// <summary> /// Crontab schedule /// </summary> /// <param name="expression">expression</param> private CrontabSchedule(string expression) { Debug.Assert(expression != null); var fields = expression.Split((char[])Separators, StringSplitOptions.RemoveEmptyEntries); if (fields.Length != 5) { throw new FormatException(string.Format( "'{0}' is not a valid crontab expression. It must contain at least 5 components of a schedule " + "(in the sequence of minutes, hours, days, months, days of week).", expression)); } _minutes = CrontabField.Minutes(fields[0]); _hours = CrontabField.Hours(fields[1]); _days = CrontabField.Days(fields[2]); _months = CrontabField.Months(fields[3]); _daysOfWeek = CrontabField.DaysOfWeek(fields[4]); }