public IEnumerable<DateTime> GetNextOccurrences(DateTime baseTime, DateTime endTime) { for (var occurrence = GetNextOccurrence(baseTime, endTime); occurrence < endTime; occurrence = GetNextOccurrence(occurrence, endTime)) { yield return occurrence; } }