public override IEnumerable <DateTime?> Adjust(DateTimeFormula Offset, DateTime MinDate, DateTime MaxDate, DateTime StartDate) { //AFter = Min, Max, Current //Before = Max, Min, Current var Query = from x in Position.Occurances(MinDate, MaxDate, StartDate) let NewMin = (Location == TimeAdjustmentLocation.After ? MinDate : MaxDate) let NewMax = (Location == TimeAdjustmentLocation.After ? MaxDate : MinDate) let Adjusted = Offset.Occurances(NewMin, NewMax, x.Value).FirstOrDefault() where Adjusted != null select Adjusted ; return(Query); }