public static DateTime EndOfMonth(this DateTime date)
 {
     return date.BeginOfMonth().AddMonths(1).AddDays(-1);
 }
 public static DateTime MiddleOfMonth(this DateTime date)
 {
     return date.BeginOfMonth().AddDays(15);
 }
 public static DateSpan FullMonths(this DateTime date)
 {
     return new DateSpan(date.BeginOfMonth(), date.DaysInMonth());
 }