1: public static DateTime NextQuarterEnd(this DateTime date)
2: {
3: IEnumerable<DateTime> candidates =
4: QuartersInYear(date.Year).Union(QuartersInYear(date.Year + 1));
5: return candidates.Where(d => d.Subtract(date).Days > 0).First();
6: }
7:
8: public static IEnumerable<DateTime> QuartersInYear(int year)
9: {
10: return new List<DateTime>() {
11: new DateTime(year, 3, 31),
12: new DateTime(year, 6, 30),
13: new DateTime(year, 9, 30),
14: new DateTime(year, 12, 31),
15: };
16: }