DaysInMonthメソッドを使うとある年ある月の日数を求めることが出来ます。 このメソッドでは、指定された年がうるう年の場合は追加されたうるう日の分も含めた日数を返します。 次の例では2012年の各月ごとの日数を表示しています。

DateTime.DaysInMonthメソッドである年ある月の日数を求める
using System;

class Sample {
  static void Main()
  {
    for (var month = 1; month <= 12; month++) {
      // 2012年1月〜12月の各月の日数を求める
      Console.WriteLine("2012-{0} : {1} days", month, DateTime.DaysInMonth(2012, month));
    }
  }
}
実行結果
2012-1 : 31 days
2012-2 : 29 days
2012-3 : 31 days
2012-4 : 30 days
2012-5 : 31 days
2012-6 : 30 days
2012-7 : 31 days
2012-8 : 31 days
2012-9 : 30 days
2012-10 : 31 days
2012-11 : 30 days
2012-12 : 31 days

このメソッドを用いることで、月末の日付を求めることも出来ます。 実装例は月末の日付を求めるで紹介しています。