protected DateTime?NextSecond(int year, int month, int day, int hour, int minute, int second) { switch (SecondType) { case CronFieldType.Any: if (second < 59) { return(new DateTime(year, month, day, hour, minute, second + 1)); } else { return(NextMinute(year, month, day, hour, minute, 0)); } case CronFieldType.Specified: var values = Seconds.Where(x => x > second); if (values.Any()) { return(new DateTime(year, month, day, hour, minute, values.First())); } else { return(NextMinute(year, month, day, hour, minute, Seconds.First())); } default: throw new NotImplementedException(); } }