Нет необходимости в пользовательских расчетах.
Используйте метод System.DateTime.DaysInMonth(yearNum, monthNum)
, чтобы узнать количество дней в этом месяце (это также последний день).
Это так просто, как:
//Get days in month 2 (Feb) of year 2011. Returns 28.
int daysInFeb2011 = System.DateTime.DaysInMonth(2011, 2);
В документации MSDN обеспечивает более тщательный и описательный образец:
const int July = 7;
const int Feb = 2;
// daysInJuly gets 31.
int daysInJuly = System.DateTime.DaysInMonth(2001, July);
// daysInFeb gets 28 because the year 1998 was not a leap year.
int daysInFeb = System.DateTime.DaysInMonth(1998, Feb);
// daysInFebLeap gets 29 because the year 1996 was a leap year.
int daysInFebLeap = System.DateTime.DaysInMonth(1996, Feb);