/// <summary> /// Get list of Quarters between two dates /// </summary> /// <remarks>WARNING: NEEDS TESTING</remarks> /// <param name="StartDate"></param> /// <param name="EndDate"></param> /// <returns></returns> public static IEnumerable <CalendarQuarter> GetAllQuarters(DateTime StartDate, DateTime EndDate) { var qtrs = new List <CalendarQuarter>(); var firstQuarter = new CalendarQuarter(StartDate); var lastQuarter = new CalendarQuarter(EndDate); var startDate = firstQuarter.StartDate; qtrs.Add(lastQuarter); CalendarQuarter quarter; quarter = lastQuarter.GetPriorQuarter(); qtrs.Add(quarter); do { quarter = quarter.GetPriorQuarter(); qtrs.Add(quarter); } while (quarter.StartDate > startDate); qtrs.Add(firstQuarter); return(qtrs); }
public static IEnumerable <CalendarQuarter> GetPreviousQuarters(int NumberToReturn, DateTime Date, bool IncludeCurrent = false) { var qtrs = new List <CalendarQuarter>(); CalendarQuarter quarter; //var lastQuarterYear = 0; var currentQuarter = new CalendarQuarter(Date); if (IncludeCurrent) { quarter = currentQuarter; //qtrs.Add(currentQuarter); //numToGet = numToGet - 1; } else { quarter = currentQuarter.GetPriorQuarter(); } qtrs.Add(quarter); var numToGet = NumberToReturn - 1; for (int i = 0; i < numToGet; i++) { quarter = quarter.GetPriorQuarter(); qtrs.Add(quarter); } return(qtrs); }