public IEnumerable <DateRange> SplitByQuarterHour() { if (Start.EndOfQuarterHour() == Stop.EndOfQuarterHour()) { return new[] { this } } ; var t = Start.EndOfQuarterHour().AddTicks(1); return(new[] { new DateRange(Start, t) }.Concat(new DateRange(t, Stop).SplitByQuarterHour())); }